Serilog 控制台接收器输出换行符为

问题描述 投票:0回答:1

我正在使用

Serilog
记录器和控制台接收器来记录我的
ASP.NET Core 5.0
项目。还可以使用与 EF Core 5.0 相同的
ILoggerFactory
,如下所示

optionsBuilder.UseLoggerFactory(serilogFactory) 

但是当 EF Core 记录 SQL 语句时,这些行在控制台上不会显示为换行符,而是显示为

\r\n
。 但是如果我使用
LoggerFactory
中的内置
ASP.NET Core
,如下所示

var loggerFactory = LoggerFactory.Create(
    builder => builder.AddConsole(options =>
    {
    })
);
optionsBuilder.UseLoggerFactory(loggerFactory);

那就好了。

有办法解决吗?

asp.net-core serilog asp.net-core-5.0
1个回答
9
投票

将 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

© www.soinside.com 2019 - 2024. All rights reserved.