CodeWF.LogViewer.Avalonia
12.0.5.2
See the version list below for details.
dotnet add package CodeWF.LogViewer.Avalonia --version 12.0.5.2
NuGet\Install-Package CodeWF.LogViewer.Avalonia -Version 12.0.5.2
<PackageReference Include="CodeWF.LogViewer.Avalonia" Version="12.0.5.2" />
<PackageVersion Include="CodeWF.LogViewer.Avalonia" Version="12.0.5.2" />
<PackageReference Include="CodeWF.LogViewer.Avalonia" />
paket add CodeWF.LogViewer.Avalonia --version 12.0.5.2
#r "nuget: CodeWF.LogViewer.Avalonia, 12.0.5.2"
#:package CodeWF.LogViewer.Avalonia@12.0.5.2
#addin nuget:?package=CodeWF.LogViewer.Avalonia&version=12.0.5.2
#tool nuget:?package=CodeWF.LogViewer.Avalonia&version=12.0.5.2
CodeWF.Log
轻量级、高性能 .NET 日志库,支持控制台和 Avalonia UI 应用程序。
仓库规范
- 当前版本:
12.0.4.2,版本号统一维护在根目录Directory.Build.props的<Version>节点。 - NuGet 包项目统一支持
net8.0;net10.0;Demo、App、测试与内部应用项目统一使用net11.0/net11.0-windows。 - 根目录
logo.svg、logo.png、logo.ico是唯一图标源,子工程只通过 MSBuildLink引用,不维护图标副本。 - 运行时帮助、Markdown 示例、内置备忘录、设计说明等业务文档按功能保留;仓库级入口文档使用根目录
README.md和UpdateLog.md。
两个 NuGet 包
| 包名 | 说明 | 适用场景 |
|---|---|---|
| CodeWF.Log.Core | 核心日志库,仅依赖 .NET | 控制台程序、WPF、Avalonia 等所有 C# 程序 |
| CodeWF.LogViewer.Avalonia | Avalonia UI 控件,依赖 CodeWF.Log.Core | Avalonia UI 程序,提供日志展示控件 |
脚本
pack.bat:还原、构建并打包CodeWF.Log.Core与CodeWF.LogViewer.Avalonia到artifacts\packages。
CodeWF.Log.Core
核心日志库,NuGet 包安装:
Install-Package CodeWF.Log.Core
基本使用
Logger.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=false
配置参数
Logger.Level = LogType.Info; // 日志级别,低于此级别的日志被忽略
Logger.LogDir = "/path/to/logs"; // 日志文件存储目录
Logger.BatchProcessSize = 200; // 批量写入的日志条数阈值
Logger.MaxLogFileSizeMB = 500; // 单个日志文件最大大小(MB)
Logger.EnableConsoleOutput = true; // 是否输出到控制台
CodeWF.LogViewer.Avalonia
Avalonia UI 日志展示控件,NuGet 包安装:
Install-Package CodeWF.LogViewer.Avalonia
XAML 使用
xmlns:log="https://codewf.com"
<log:LogView />
Avalonia 程序初始化
// 程序退出时调用
await Logger.FlushAsync();
注意:
LogView控件内部会自动调用RecordToFile()启动文件日志记录,并从 UI 通道消费日志显示到界面。
日志消费
LogView 内部使用 await foreach 异步枚举模式消费 UI 通道日志,支持批量处理和防抖机制:
- 日志数量达到
BatchProcessSize时立即刷新 UI - 未达阈值时,最长延迟
LogUIDuration(默认100ms)后刷新
更新日志
V1.0.12(2026-04)
- ✨[优化]-重构为 Channel 架构,提升性能
- ✨[优化]-添加防抖机制,避免日志频繁刷新
- ✨[优化]-UI消费使用
await foreach异步枚举模式 - 🐛[修复]-修复 FlushAsync 方法
V1.0.11.3(2025-09-15)
- 🐛[修复]-修复自定义日志目录打开异常问题
TODO
第三方开源组件审计(2026-05-20)
检查方式: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 或其它黑盒主题包。
Package Versioning Convention
Keep NuGet package versions and Central Package Management settings in Directory.Packages.props, including shared version properties such as AvaloniaVersion. Keep Directory.Build.props focused on build, compiler, and NuGet package metadata. When referenced, VC-LTL and YY-Thunks should use their latest prerelease versions for OS platform compatibility.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- Avalonia (>= 12.0.5)
- CodeWF.Log.Core (>= 12.0.5.2)
- CodeWF.Tools.Core (>= 1.3.13.9)
-
net8.0
- Avalonia (>= 12.0.5)
- CodeWF.Log.Core (>= 12.0.5.2)
- CodeWF.Tools.Core (>= 1.3.13.9)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 12.0.5.5 | 51 | 6/25/2026 |
| 12.0.5.4 | 45 | 6/25/2026 |
| 12.0.5.3 | 55 | 6/24/2026 |
| 12.0.5.2 | 69 | 6/24/2026 |
| 12.0.4.2 | 95 | 6/8/2026 |
| 12.0.3.1 | 124 | 5/20/2026 |
| 12.0.2.1 | 97 | 5/7/2026 |
| 12.0.2 | 114 | 4/30/2026 |
| 11.3.15 | 115 | 4/27/2026 |
| 11.3.14 | 128 | 4/17/2026 |
| 11.3.12.2 | 129 | 3/17/2026 |
| 11.3.12.1 | 128 | 2/13/2026 |
| 11.3.10 | 235 | 12/25/2025 |
| 11.3.9.8 | 262 | 12/15/2025 |
| 11.3.9.7 | 170 | 12/12/2025 |
| 11.3.9.4 | 165 | 11/29/2025 |
| 11.3.9.2 | 234 | 11/25/2025 |
| 11.3.9.1 | 205 | 11/23/2025 |
| 11.3.9 | 251 | 11/22/2025 |
| 1.1.0.1 | 324 | 11/12/2025 |