ConsoleWrapperLogger
This commit is contained in:
parent
245f631ed5
commit
4b33339d3a
@ -2,7 +2,7 @@
|
|||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<!--package info-->
|
<!--package info-->
|
||||||
<PackageId>DTLib.Logging.Microsoft</PackageId>
|
<PackageId>DTLib.Logging.Microsoft</PackageId>
|
||||||
<Version>1.0.0</Version>
|
<Version>1.0.1</Version>
|
||||||
<Authors>Timerix</Authors>
|
<Authors>Timerix</Authors>
|
||||||
<Description>DTLib logger wrapper with dependency injection</Description>
|
<Description>DTLib logger wrapper with dependency injection</Description>
|
||||||
<RepositoryType>GIT</RepositoryType>
|
<RepositoryType>GIT</RepositoryType>
|
||||||
@ -29,6 +29,6 @@
|
|||||||
<ProjectReference Include="..\DTLib.Logging\DTLib.Logging.csproj" />
|
<ProjectReference Include="..\DTLib.Logging\DTLib.Logging.csproj" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup Condition=" '$(Configuration)' != 'Debug' ">
|
<ItemGroup Condition=" '$(Configuration)' != 'Debug' ">
|
||||||
<PackageReference Include="DTLib.Logging" Version="1.3.4" />
|
<PackageReference Include="DTLib.Logging" Version="1.3.5" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
</Project>
|
</Project>
|
||||||
|
|||||||
@ -2,7 +2,7 @@
|
|||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<!--package info-->
|
<!--package info-->
|
||||||
<PackageId>DTLib.Logging</PackageId>
|
<PackageId>DTLib.Logging</PackageId>
|
||||||
<Version>1.3.4</Version>
|
<Version>1.3.5</Version>
|
||||||
<Authors>Timerix</Authors>
|
<Authors>Timerix</Authors>
|
||||||
<Description>Loggers with dependency injection</Description>
|
<Description>Loggers with dependency injection</Description>
|
||||||
<RepositoryType>GIT</RepositoryType>
|
<RepositoryType>GIT</RepositoryType>
|
||||||
|
|||||||
@ -28,7 +28,6 @@ public class DefaultLogFormat : ILogFormat
|
|||||||
if (sb.Length != 0)
|
if (sb.Length != 0)
|
||||||
sb.Append(": ");
|
sb.Append(": ");
|
||||||
sb.Append(message);
|
sb.Append(message);
|
||||||
sb.Append('\n');
|
|
||||||
return sb.ToString();
|
return sb.ToString();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -6,17 +6,4 @@ public enum LogSeverity
|
|||||||
Info,
|
Info,
|
||||||
Warn,
|
Warn,
|
||||||
Error
|
Error
|
||||||
}
|
|
||||||
|
|
||||||
internal static class LogSeverityHelper
|
|
||||||
{
|
|
||||||
public static bool CheckSeverity(this ILogger logger, LogSeverity severity)
|
|
||||||
=> severity switch
|
|
||||||
{
|
|
||||||
LogSeverity.Debug => logger.DebugLogEnabled,
|
|
||||||
LogSeverity.Info => logger.InfoLogEnabled,
|
|
||||||
LogSeverity.Warn => logger.WarnLogEnabled,
|
|
||||||
LogSeverity.Error => logger.ErrorLogEnabled,
|
|
||||||
_ => throw new ArgumentOutOfRangeException(nameof(severity), severity, "unknown severity")
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
14
DTLib.Logging/LogSeverityHelper.cs
Normal file
14
DTLib.Logging/LogSeverityHelper.cs
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
namespace DTLib.Logging;
|
||||||
|
|
||||||
|
public static class LogSeverityHelper
|
||||||
|
{
|
||||||
|
public static bool CheckSeverity(this ILogger logger, LogSeverity severity)
|
||||||
|
=> severity switch
|
||||||
|
{
|
||||||
|
LogSeverity.Debug => logger.DebugLogEnabled,
|
||||||
|
LogSeverity.Info => logger.InfoLogEnabled,
|
||||||
|
LogSeverity.Warn => logger.WarnLogEnabled,
|
||||||
|
LogSeverity.Error => logger.ErrorLogEnabled,
|
||||||
|
_ => throw new ArgumentOutOfRangeException(nameof(severity), severity, "unknown severity")
|
||||||
|
};
|
||||||
|
}
|
||||||
@ -5,12 +5,7 @@ namespace DTLib.Logging;
|
|||||||
// вывод лога в консоль и файл
|
// вывод лога в консоль и файл
|
||||||
public class ConsoleLogger : ILogger
|
public class ConsoleLogger : ILogger
|
||||||
{
|
{
|
||||||
public bool DebugLogEnabled { get; set; } =
|
public bool DebugLogEnabled { get; set; } = false;
|
||||||
#if DEBUG
|
|
||||||
true;
|
|
||||||
#else
|
|
||||||
false;
|
|
||||||
#endif
|
|
||||||
public bool InfoLogEnabled { get; set; } = true;
|
public bool InfoLogEnabled { get; set; } = true;
|
||||||
public bool WarnLogEnabled { get; set; } = true;
|
public bool WarnLogEnabled { get; set; } = true;
|
||||||
public bool ErrorLogEnabled { get; set; } = true;
|
public bool ErrorLogEnabled { get; set; } = true;
|
||||||
@ -32,7 +27,7 @@ public class ConsoleLogger : ILogger
|
|||||||
|
|
||||||
var msg = format.CreateMessage(context, severity, message);
|
var msg = format.CreateMessage(context, severity, message);
|
||||||
lock (consolelocker)
|
lock (consolelocker)
|
||||||
ColoredConsole.Write(ColorFromSeverity(severity),msg);
|
ColoredConsole.WriteLine(ColorFromSeverity(severity),msg);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static ConsoleColor ColorFromSeverity(LogSeverity severity)
|
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 class FileLogger : ILogger
|
||||||
{
|
{
|
||||||
public bool DebugLogEnabled { get; set; } =
|
public bool DebugLogEnabled { get; set; } = false;
|
||||||
#if DEBUG
|
|
||||||
true;
|
|
||||||
#else
|
|
||||||
false;
|
|
||||||
#endif
|
|
||||||
public bool InfoLogEnabled { get; set; } = true;
|
public bool InfoLogEnabled { get; set; } = true;
|
||||||
public bool WarnLogEnabled { get; set; } = true;
|
public bool WarnLogEnabled { get; set; } = true;
|
||||||
public bool ErrorLogEnabled { get; set; } = true;
|
public bool ErrorLogEnabled { get; set; } = true;
|
||||||
@ -41,13 +36,15 @@ public class FileLogger : ILogger
|
|||||||
var msg = format.CreateMessage(context, severity, message);
|
var msg = format.CreateMessage(context, severity, message);
|
||||||
lock (LogfileStream)
|
lock (LogfileStream)
|
||||||
{
|
{
|
||||||
LogfileStream.FluentWrite(msg.ToBytes(StringConverter.UTF8)).Flush();
|
LogfileStream.FluentWriteString(msg)
|
||||||
|
.FluentWriteByte('\n'.ToByte())
|
||||||
|
.Flush();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public virtual void Dispose()
|
public virtual void Dispose()
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
LogfileStream?.Flush();
|
LogfileStream?.Flush();
|
||||||
LogfileStream?.Dispose();
|
LogfileStream?.Dispose();
|
||||||
|
|||||||
@ -22,7 +22,7 @@
|
|||||||
<PackageReference Include="DTLib" Version="1.3.4" />
|
<PackageReference Include="DTLib" Version="1.3.4" />
|
||||||
<PackageReference Include="DTLib.Dtsod" Version="1.3.4" />
|
<PackageReference Include="DTLib.Dtsod" Version="1.3.4" />
|
||||||
<PackageReference Include="DTLib.Network" Version="1.4.0" />
|
<PackageReference Include="DTLib.Network" Version="1.4.0" />
|
||||||
<PackageReference Include="DTLib.Logging" Version="1.3.4" />
|
<PackageReference Include="DTLib.Logging" Version="1.3.5" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<!--project files-->
|
<!--project files-->
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user