ConsoleWrapperLogger

This commit is contained in:
2024-01-23 13:55:16 +06:00
parent 245f631ed5
commit 4b33339d3a
9 changed files with 71 additions and 33 deletions

View File

@@ -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)

View 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();
}

View File

@@ -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();