51 lines
1.1 KiB
C#
51 lines
1.1 KiB
C#
using System;
|
|
using System.Diagnostics;
|
|
namespace sharp.logging
|
|
{
|
|
public abstract class Logger
|
|
{
|
|
public static Logger DefaultLogger { get; set; } = new ConsoleLogger();
|
|
|
|
public Logger()
|
|
{
|
|
}
|
|
|
|
public void Log(LogLevel level,string message, params object[] args)
|
|
{
|
|
Log(level,String.Format(message, args));
|
|
}
|
|
|
|
public void Log(string message,params object[] args){
|
|
Log(LogLevel.INFO,String.Format(message, args));
|
|
}
|
|
|
|
public void Log(string message)
|
|
{
|
|
Log(LogLevel.INFO, message);
|
|
}
|
|
public void Log(LogLevel level,string message)
|
|
{
|
|
string[] lines = message.Split('\n');
|
|
|
|
lines[0] = String.Format("{0} [{1}] [ {3,-10} ] {2}",
|
|
DateTime.Now.ToLocalTime(),
|
|
Process.GetCurrentProcess().Id,
|
|
lines[0],
|
|
level.ToString()
|
|
);
|
|
|
|
for (int n = 1; n < lines.Length; n++){
|
|
lines[n] = " " + lines[n];
|
|
}
|
|
WriteEntry( lines );
|
|
}
|
|
|
|
public abstract void WriteEntry(string[] entry);
|
|
|
|
public virtual void Close()
|
|
{
|
|
}
|
|
|
|
}
|
|
}
|