Переработанная версия ядра
All checks were successful
CI / build-test (push) Successful in 42s

This commit is contained in:
2025-12-05 12:57:05 +03:00
parent ee175a35a0
commit d817417a69
81 changed files with 2335 additions and 1453 deletions

View File

@@ -0,0 +1,30 @@
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);
}
}
}

View File

@@ -0,0 +1,15 @@
namespace BotPages.Core.Logging;
/// <summary>
/// Интерфейс логгера для BotPages.
/// </summary>
public interface ILogger
{
/// <summary>
/// Записать сообщение в лог.
/// </summary>
/// <param name="level">Уровень логирования.</param>
/// <param name="message">Текст сообщения.</param>
/// <param name="ex">Исключение, если есть.</param>
void Log(LogLevel level, string message, Exception? ex = null);
}

View File

@@ -0,0 +1,14 @@
namespace BotPages.Core.Logging;
/// <summary>
/// Уровни логирования для BotPages.
/// </summary>
public enum LogLevel
{
/// <summary>Информационные сообщения.</summary>
Info,
/// <summary>Предупреждения (например, деградация возможностей).</summary>
Warn,
/// <summary>Критические ошибки, делающие невозможным продолжение работы.</summary>
Critical
}

View File

@@ -0,0 +1,12 @@
namespace BotPages.Core.Logging;
/// <summary>
/// Отключение логирования
/// </summary>
public sealed class WithoutLogger : ILogger
{
/// <inheritdoc/>
public void Log(LogLevel level, string message, Exception? ex = null)
{
}
}