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; } }