轻量级、高性能 .NET 日志库,支持控制台和 Avalonia UI 应用程序。
| 包名 | 说明 | 适用场景 |
|---|---|---|
| CodeWF.Log.Core | 核心日志库,仅依赖 .NET | 控制台程序、WPF、Avalonia 等所有 C# 程序 |
| CodeWF.LogViewer.Avalonia | Avalonia UI 控件,依赖 CodeWF.Log.Core | Avalonia UI 程序,提供日志展示控件 |
核心日志库,NuGet 包安装:
Install-Package CodeWF.Log.CoreLogger.Debug("调试日志");
Logger.Info("普通日志");
Logger.Warn("警告日志");
Logger.Error("错误日志");
Logger.Fatal("严重错误日志");控制台程序使用文件日志时,需要在启动时初始化:
// Program.cs 或 Main 方法中调用一次
Logger.RecordToFile();
// 程序退出时刷新缓冲区
await Logger.FlushAsync();每个日志方法支持参数控制输出目标:
Logger.Info(
content: "写入文件的内容",
uiContent: "UI显示的友好内容", // 可选,默认为null,此时UI显示content参数的内容
log2UI: true, // 是否输出到UI
log2File: true, // 是否输出到文件
log2Console: true // 是否输出到控制台
);
// 快捷方法
Logger.InfoToFile("仅写入文件"); // log2UI=false, log2Console=false
Logger.LogToUI(LogType.Info, "仅显示UI"); // log2File=falseLogger.Level = LogType.Info; // 日志级别,低于此级别的日志被忽略
Logger.LogDir = "/path/to/logs"; // 日志文件存储目录
Logger.BatchProcessSize = 200; // 批量写入的日志条数阈值
Logger.MaxLogFileSizeMB = 500; // 单个日志文件最大大小(MB)
Logger.EnableConsoleOutput = true; // 是否输出到控制台Avalonia UI 日志展示控件,NuGet 包安装:
Install-Package CodeWF.LogViewer.Avaloniaxmlns:log="https://codewf.com"<log:LogView />// 程序退出时调用
await Logger.FlushAsync();注意:
LogView控件内部会自动调用RecordToFile()启动文件日志记录,并从 UI 通道消费日志显示到界面。
LogView 内部使用 await foreach 异步枚举模式消费 UI 通道日志,支持批量处理和防抖机制:
- 日志数量达到
BatchProcessSize时立即刷新 UI - 未达阈值时,最长延迟
LogUIDuration(默认100ms)后刷新
- ✨[优化]-重构为 Channel 架构,提升性能
- ✨[优化]-添加防抖机制,避免日志频繁刷新
- ✨[优化]-UI消费使用
await foreach异步枚举模式 - 🐛[修复]-修复 FlushAsync 方法
- 🐛[修复]-修复自定义日志目录打开异常问题
TODO
检查方式:NuGet 元数据、恢复后的 project.assets.json、NuGet.org 与源码仓库信息。优先接受 MIT / Apache-2.0 / BSD。
| 包 | 使用范围 | 协议 | 源码/项目地址 | 结论 |
|---|---|---|---|---|
Avalonia / Avalonia.Desktop / Avalonia.Fonts.Inter / Avalonia.Themes.Fluent |
Avalonia 日志查看器和示例 | MIT | https://github.com/AvaloniaUI/Avalonia | 通过 |
CodeWF.Tools.Core |
日志核心辅助能力 | MIT | https://github.com/dotnet9/CodeWF.Tools | 自研开源包,已更新到 1.3.13.2 |
VC-LTL |
Windows 示例运行时兼容 | EPL-2.0 | https://github.com/Chuyu-Team/VC-LTL5 | 源码开放,按“非优先但可追溯”通过 |
YY-Thunks |
Windows 示例运行时兼容 | MIT | https://github.com/Chuyu-Team/YY-Thunks | 通过 |
传递依赖检查结论:Avalonia/SkiaSharp/ANGLE 链均有公开源码,许可证为 MIT 或 BSD-style。未发现 Semi.Avalonia.Dock、Semi.Avalonia.ProDataGrid、Semi.Avalonia.AvaloniaEdit 或其它黑盒主题包。