我正在使用
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);
那就好了。
有办法解决吗?
将 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