asp.net-core - Serilog 控制台接收器输出换行符为 \r\n
问题描述
我正在使用Serilog
记录器和控制台接收器来登录我的ASP.NET Core 5.0
项目。也可以ILoggerFactory
与 EF Core 5.0 一起使用,如下所示
optionsBuilder.UseLoggerFactory(serilogFactory)
但是,当 EF Core 记录 SQL 语句时,这些行不会在控制台上显示为换行符,而是显示为\r\n
。LoggerFactory
但是如果我使用ASP.NET Core
下面的内置
var loggerFactory = LoggerFactory.Create(
builder => builder.AddConsole(options =>
{
})
);
optionsBuilder.UseLoggerFactory(loggerFactory);
然后就好了。
有没有办法解决这个问题?
解决方案
当使用带有控制台接收器的 Serilog 时,Message
模板中的属性应该具有格式说明符:l
以实现所需的格式:
"outputTemplate": "{Timestamp:yyyy-MM-dd HH:mm:ss.fff} [{Level:u3}] {Message:l}{NewLine}{Exception}"
通过使用该说明符,消息字符串将不会被引用,从而正确格式化输出。
有关说明符的更多信息:https ://github.com/serilog/serilog/wiki/Formatting-Output
推荐阅读
- python - 为什么使用 print(iterable) 时输出不打印?
- javascript - 前端 javascript 隐藏/使用环境变量?
- drupal-7 - Drupal 7 - 如何更改 Webform 给出的“选择”组件?
- python - Pycharm pyenv 选择了错误的 python 库:如何修复?
- javascript - 画布上下文 - 缓存 window.requestAnimationFrame 回调函数的变量值
- reactjs - 显示 NaN 而不是 0 英里
- python - 使用 numpy 数组发布自定义 ROS 消息时出现 ROSSerializationException
- sql - 如何在不使用导入/导出向导的情况下从 SQL Server 导出数据?
- dart - 如何在颤动中将初始值设置为下拉菜单?
- java - 如何在片段内的 Spinner 的 onItemSelected() 中使用 getApplication()?