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()
|
|||
|
{
|
|||
|
}
|
|||
|
|
|||
|
}
|
|||
|
}
|