c# - 如何使用基于代码的配置在 serilog 中输出紧凑的日志级别
问题描述
使用 serilog 时,基于代码的配置和基于文件的配置似乎在输出上产生不同的日志级别紧凑性。
我在使用代码配置时得到 [2020-05-15T13:09:36 Information],而在使用配置文件配置时得到 [2020-05-15T13:09:37 INF]。
如果有人能告诉我如何使用基于代码的配置获取“INF”而不是“INFORMATION”,我将不胜感激。
代码配置:
return new LoggerConfiguration()
.Enrich.FromLogContext()
.WriteTo.Console(LogEventLevel.Verbose,
outputTemplate:
"[{Timestamp:s} {Level:Level:w3}] {Component} {PollCount} {RequestId} {Message:lj}{NewLine}")
.WriteTo.File(
$"{Path.GetTempPath()}\\Logs\\agent.log",
rollingInterval: RollingInterval.Day,
restrictedToMinimumLevel: LogEventLevel.Verbose,
outputTemplate: "[{Timestamp:s} {Level:Level:w3}] {Component} {PollCount} {RequestId} {Message:lj}{NewLine}"
)
.CreateLogger()
.ForContext<T>();
appsettings.json 配置:
"WriteTo": [
{
"Name": "Async",
"Args": {
"configure": [
{
"Name": "Console",
"Args": {
"outputTemplate": "[{Timestamp:s} {Level:Level:u3}] {Component} {PollCount} {RequestId} {Message:lj}{NewLine}"
}
},
解决方案
默认情况下,全名用于记录事件。使用输出模板覆盖。Level 的有效值是 u(大写)或 w(小写)和一些字符。级别名称缩写,信息缩写为“INF”。我认为由于无效值,它正在显示默认文本
所以 Level:u3 会输出 INF
级别:w3 将输出 inf
serilog 的官方链接,此处提供级别信息
推荐阅读
- asp.net-core-webapi - 带有 OData 控制器的 ASP.NET Core Web API 需要使用 fluent API 来实现复合键
- javascript - js将html附加到表格单元格
- bash - 在 csv 文件中查找列的索引号,但命令不显示结果?
- angular - 打开 mat-sidenav 时如何停止在 mat-drawer-content 中滚动
- selenium-webdriver - 如何确保机器人不会点击它已经订阅的那些人
- javascript - 当我从最近的选项卡中删除浏览器时,我的表单丢弃了用户输入 如何修复
- bash - 在 Eclipse 中附加 Git Bash
- reactjs - 传递对象数组时,如何从 typeahead 中获取 id 而不是 labelKey?
- python - Python 中的多次导入会影响内存吗?
- gradle - 无法从 gradle 项目中的 Confluent 存储库下载 Jars