30 lines
749 B
C#
30 lines
749 B
C#
namespace BotPages.Core.Logging;
|
|
|
|
/// <summary>
|
|
/// Вывод лога в консоль.
|
|
/// </summary>
|
|
public sealed class ConsoleLogger : ILogger
|
|
{
|
|
/// <inheritdoc/>
|
|
public void Log(LogLevel level, string message, Exception? ex = null)
|
|
{
|
|
var prefix = level switch
|
|
{
|
|
LogLevel.Info => "[INFO] ",
|
|
LogLevel.Warn => "[WARN] ",
|
|
LogLevel.Critical => "[CRIT] ",
|
|
_ => "[LOG] "
|
|
};
|
|
|
|
string text = $"{DateTime.UtcNow:O} {prefix}{message}{(ex is null ? "" : $" :: {ex.Message}")}";
|
|
|
|
if (level == LogLevel.Critical)
|
|
{
|
|
Console.Error.WriteLine(text);
|
|
}
|
|
else
|
|
{
|
|
Console.WriteLine(text);
|
|
}
|
|
}
|
|
} |