46 lines
1.2 KiB
C#
46 lines
1.2 KiB
C#
using DTLib.Logging;
|
|
|
|
namespace launcher_client;
|
|
|
|
public interface IConsoleWrapper : IDisposable
|
|
{
|
|
public void WriteLine(string msg);
|
|
}
|
|
|
|
public class ConsoleWrapperLogger : ILogger
|
|
{
|
|
public bool DebugLogEnabled { get; set; } = false;
|
|
public bool InfoLogEnabled { get; set; } = true;
|
|
public bool WarnLogEnabled { get; set; } = true;
|
|
public bool ErrorLogEnabled { get; set; } = true;
|
|
public ILogFormat Format { get; set; }
|
|
|
|
private readonly IConsoleWrapper _consoleWrapper;
|
|
|
|
public ConsoleWrapperLogger(IConsoleWrapper consoleWrapper, ILogFormat format)
|
|
{
|
|
_consoleWrapper = consoleWrapper;
|
|
Format = format;
|
|
}
|
|
|
|
public ConsoleWrapperLogger(IConsoleWrapper consoleWrapper)
|
|
: this(consoleWrapper, new DefaultLogFormat())
|
|
{}
|
|
|
|
public void Log(string context, LogSeverity severity, object message, ILogFormat format)
|
|
{
|
|
if(!this.CheckSeverity(severity))
|
|
return;
|
|
|
|
var msg = format.CreateMessage(context, severity, message);
|
|
lock (_consoleWrapper)
|
|
_consoleWrapper.WriteLine(msg);
|
|
}
|
|
|
|
public void Dispose()
|
|
{
|
|
_consoleWrapper.Dispose();
|
|
}
|
|
|
|
~ConsoleWrapperLogger() => Dispose();
|
|
} |