没想到国庆期间还有不少用户提交 Issue 和 Pull Request,作为作者当然也不能懈怠,只要发现 Bug 并确认当天修复,当天发布,两年多来皆是如此。
目前 Furion 在 Nuget 平台项目总安装量破 355万次,总下载量已经破 4400万次 https://www.nuget.org/profiles/monk.soul
![]()
项目信息
本期亮点
1. 支持各种日志输出介质 JSON 化
// 控制台
services.AddConsoleFormatter(options =>
{
options.MessageFormat = LoggerFormatter.Json;
});
// 文件
services.AddFileLogging("mytemplate.log", options =>
{
options.MessageFormat = LoggerFormatter.Json;
});
// 数据库
services.AddDatabaseLogging<DatabaseLoggingWriter>(options =>
{
options.MessageFormat = LoggerFormatter.Json;
});
2. 监听日志支持输出 JSON 格式
// 全局
services.AddMonitorLogging(options =>
{
options.JsonBehavior = Furion.Logging.JsonBehavior.OnlyJson;
});
// 局部
[LoggingMonitor(JsonBehavior = Furion.Logging.JsonBehavior.OnlyJson)]
本期更新
新特性
- [新增]
.AddConsoleFormatter() 拓展简化控制台日志模板配置 4.5.0 #I5TCMO
- [新增] 控制台和文件日志时间默认显示
星期几 4.5.1 #I5TKL5
- [新增] 控制台和文件日志支持配置
options.DateFormat 日期格式化 4.5.1 #I5TKL5
- [新增] 控制台日志带颜色输出,比如高亮
日志级别 4.5.1 #I5TKL5
- [新增] 控制台格式化配置
options.WriteHandler 完全自定义配置 4.5.2 7fb3036
- [新增] 日志输出
JSON 格式化配置 4.5.2 #I5TWC1 #I5OUT1
- [新增] 数据库日志写入独立日志模板配置、独立日期格式配置 4.5.2 #I5TWC1
- [新增]
LogMessage 结构类 LogDateTime,ThreadId,State 属性 4.5.2 #I5TWC1
- [新增]
LoggingMonitor 可配置 JsonWriterOptions 属性 4.5.4 #I5U375
- [新增]
Log.ScopeContext 和 "some log".ScopeContext 拓展 4.5.4 8129693
- [新增] 新增
HttpContext.SetTokensOfResponseHeaders 拓展 4.5.7 3775e65
突破性变化
问题修复
- [修复] 字符串日志拓展带泛型方法不能正确显示
CategoryName 日志类别 4.5.0 #I5TBKL
- [修复] 控制台日志设置了
.ScopeContext 无效问题 4.5.2 7fb3036
- [修复]
LoggingMonitor 同时配置了局部和全局日志监听触发两次问题 4.5.2 a1a97e8
- [修复]
v4.4.8+ 版本更新导致远程请求在个别情况下出现并发问题 4.5.2 #I5TWL3
- [修复]
LoggingMonitor 配置了 ReturnValueThreshold 之后 Json 被截断引发有效性检测异常 4.5.4 #I5U375
- [修复]
LoggingMonitor 不支持 DataTable,DataSet,Tuple 等类型问题 4.5.5 #I5U3VO
- [修复] 自
v4.5.2+ 版本升级后出现启动时使用 App.GetOptons<TOptions> 异常问题 4.5.6 #I5U4OC f9a6587
- [修复] 修复
app.UseInject(action) 导致死循环 4.5.7 !608
其他更改
- [调整] 文件日志默认模板,默认对日志时间进行格式化并显示星期几 4.5.1 #I5TKL5
- [调整] 脚手架代码,默认启用
services.AddConsoleFormatter() 4.5.1 #I5TLI6
- [调整]
Serve.Run() 代码,默认启用 services.AddConsoleFormatter() 4.5.1 #I5TLI6
- [调整] 减少
MiniProfile 不必要的监听,只在 Swagger 页面请求才监听 4.5.7 697ef51
文档
- [新增] 选项监听出现触发多次的解决方案 #I5T9PR
- [更新] 日志记录文档、动态 WebAPI 文档、选项文档、
HttpContext 文档