using GFramework.Core.Abstractions.Logging;
namespace GFramework.Core.Logging;
///
/// 日志配置类
///
public sealed class LoggingConfiguration
{
///
/// 全局最小日志级别
///
public LogLevel MinLevel { get; set; } = LogLevel.Info;
///
/// Appender 配置列表
///
public List Appenders { get; set; } = new();
///
/// 特定 Logger 的日志级别配置
///
public Dictionary LoggerLevels { get; set; } = new();
}
///
/// Appender 配置
///
public sealed class AppenderConfiguration
{
///
/// Appender 类型(Console, File, RollingFile, Async)
///
public string Type { get; set; } = string.Empty;
///
/// 格式化器类型(Default, Json)
///
public string Formatter { get; set; } = "Default";
///
/// 文件路径(仅用于 File 和 RollingFile)
///
public string? FilePath { get; set; }
///
/// 是否使用颜色(仅用于 Console)
///
public bool UseColors { get; set; } = true;
///
/// 缓冲区大小(仅用于 Async)
///
public int BufferSize { get; set; } = 10000;
///
/// 最大文件大小(仅用于 RollingFile,字节)
///
public long MaxFileSize { get; set; } = 10 * 1024 * 1024; // 10MB
///
/// 最大文件数量(仅用于 RollingFile)
///
public int MaxFileCount { get; set; } = 5;
///
/// 过滤器配置
///
public FilterConfiguration? Filter { get; set; }
///
/// 内部 Appender 配置(仅用于 Async)
///
public AppenderConfiguration? InnerAppender { get; set; }
}
///
/// 过滤器配置
///
public sealed class FilterConfiguration
{
///
/// 过滤器类型(LogLevel, Namespace, Composite)
///
public string Type { get; set; } = "LogLevel";
///
/// 最小日志级别(用于 LogLevel 过滤器)
///
public LogLevel? MinLevel { get; set; }
///
/// 命名空间前缀列表(用于 Namespace 过滤器)
///
public List? Namespaces { get; set; }
///
/// 子过滤器列表(用于 Composite 过滤器)
///
public List? Filters { get; set; }
}