ConsoleWrapperLogger
This commit is contained in:
@@ -5,12 +5,7 @@ namespace DTLib.Logging;
|
||||
// вывод лога в консоль и файл
|
||||
public class ConsoleLogger : ILogger
|
||||
{
|
||||
public bool DebugLogEnabled { get; set; } =
|
||||
#if DEBUG
|
||||
true;
|
||||
#else
|
||||
false;
|
||||
#endif
|
||||
public bool DebugLogEnabled { get; set; } = false;
|
||||
public bool InfoLogEnabled { get; set; } = true;
|
||||
public bool WarnLogEnabled { get; set; } = true;
|
||||
public bool ErrorLogEnabled { get; set; } = true;
|
||||
@@ -32,7 +27,7 @@ public class ConsoleLogger : ILogger
|
||||
|
||||
var msg = format.CreateMessage(context, severity, message);
|
||||
lock (consolelocker)
|
||||
ColoredConsole.Write(ColorFromSeverity(severity),msg);
|
||||
ColoredConsole.WriteLine(ColorFromSeverity(severity),msg);
|
||||
}
|
||||
|
||||
private static ConsoleColor ColorFromSeverity(LogSeverity severity)
|
||||
|
||||
46
DTLib.Logging/Loggers/ConsoleWrapperLogger.cs
Normal file
46
DTLib.Logging/Loggers/ConsoleWrapperLogger.cs
Normal file
@@ -0,0 +1,46 @@
|
||||
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();
|
||||
}
|
||||
@@ -2,12 +2,7 @@
|
||||
|
||||
public class FileLogger : ILogger
|
||||
{
|
||||
public bool DebugLogEnabled { get; set; } =
|
||||
#if DEBUG
|
||||
true;
|
||||
#else
|
||||
false;
|
||||
#endif
|
||||
public bool DebugLogEnabled { get; set; } = false;
|
||||
public bool InfoLogEnabled { get; set; } = true;
|
||||
public bool WarnLogEnabled { get; set; } = true;
|
||||
public bool ErrorLogEnabled { get; set; } = true;
|
||||
@@ -41,13 +36,15 @@ public class FileLogger : ILogger
|
||||
var msg = format.CreateMessage(context, severity, message);
|
||||
lock (LogfileStream)
|
||||
{
|
||||
LogfileStream.FluentWrite(msg.ToBytes(StringConverter.UTF8)).Flush();
|
||||
LogfileStream.FluentWriteString(msg)
|
||||
.FluentWriteByte('\n'.ToByte())
|
||||
.Flush();
|
||||
}
|
||||
}
|
||||
|
||||
public virtual void Dispose()
|
||||
{
|
||||
try
|
||||
try
|
||||
{
|
||||
LogfileStream?.Flush();
|
||||
LogfileStream?.Dispose();
|
||||
|
||||
Reference in New Issue
Block a user