# UniversalLogger - 通用日志记录库 一个基于Serilog构建的功能完整的C#日志记录库,支持多种输出方式、自动维护、配置灵活等特性。 ## 主要功能 ✅ **多种输出方式**: 支持控制台、文件输出,可单独或同时使用 ✅ **按日期分割**: 自动按日期创建日志文件 ✅ **文件大小控制**: 超过指定大小自动创建新文件 ✅ **自动压缩**: 指定天数后自动压缩旧日志文件 ✅ **自动清理**: 超过保留期限自动删除旧日志 ✅ **配置灵活**: 支持代码配置、JSON文件配置 ✅ **功能完整**: 支持各级别日志、异常堆栈、上下文信息 ✅ **性能优化**: 基于Serilog高性能日志框架 ✅ **易于使用**: 提供静态类和实例两种使用方式 ## 安装依赖 在你的项目中添加以下NuGet包: ```xml ``` ## 快速开始 ### 1. 使用默认配置 ```csharp using UniversalLogger; // 使用默认配置创建日志记录器 using var logger = new UniversalLogger(new LoggerConfig()); logger.LogInformation("Hello, World!"); logger.LogWarning("这是一个警告"); logger.LogError("这是一个错误"); ``` ### 2. 使用静态日志记录器 ```csharp // 初始化静态日志记录器 Log.Initialize(); // 直接使用 Log.Information("应用程序启动"); Log.Warning("警告信息"); Log.Error(exception, "发生错误: {Message}", exception.Message); ``` ### 3. 从配置文件加载 创建 `appsettings.json` 文件: ```json { "Logging": { "EnableConsole": true, "EnableFile": true, "LogPath": "logs", "MaxFileSizeMB": 1, "RetentionDays": 30, "CompressDaysThreshold": 3, "MinimumLevel": "Information", "OutputTemplate": "{Timestamp:yyyy-MM-dd HH:mm:ss.fff} [{Level:u3}] {Message:lj}{NewLine}{Exception}", "UseJsonFormat": false, "CompressCheckIntervalHours": 24 } } ``` 使用配置文件: ```csharp // 从配置文件初始化 Log.InitializeFromJsonFile("appsettings.json"); Log.Information("使用配置文件的日志记录器"); ``` ## 配置选项 | 属性 | 类型 | 默认值 | 说明 | |------|------|--------|------| | `EnableConsole` | bool | true | 是否启用控制台输出 | | `EnableFile` | bool | true | 是否启用文件输出 | | `LogPath` | string | "logs" | 日志文件存储路径 | | `MaxFileSizeMB` | int | 1 | 单个日志文件最大大小(MB) | | `RetentionDays` | int | 30 | 日志保留天