我使用Serilog和ASP.Net Core 2.0,使用JsonFormatter写入RollingFile。按照此处的说明配置:https://github.com/serilog/serilog-aspnetcore。一切都很好,但在每个日志条目中,我得到以下没有记录的属性:
我认为它们是由ASP.Net Core日志框架添加的。我该怎样摆脱它们?
答案 0 :(得分:6)
这可以通过将富集程序插入日志记录管道来实现:
.Enrich.With(new RemovePropertiesEnricher())
其中:
class RemovePropertiesEnricher : ILogEventEnricher
{
public void Enrich(LogEvent le, ILogEventPropertyFactory lepf)
{
le.RemovePropertyIfPresent("SourceContext");
le.RemovePropertyIfPresent("RequestId");
le.RemovePropertyIfPresent("RequestPath");
}
}
答案 1 :(得分:1)
是的,你可以摆脱它们。尝试使用日志模板:
_loggerConfiguration.WriteTo.Console(LogLevel.Debug, "{Timestamp:yyyy-MM-dd HH:mm:ss.fff} [{Level}] {Message}{NewLine}{Exception}");
在这种情况下,您不会在输出中看到提到的属性。
答案 2 :(得分:0)
在记录对象时,Serilog具有destructuring的概念。
如果要删除(忽略)这些对象中的某些属性以进行日志记录,则有两个选项。
请注意,您不应同时使用两者。同时使用这两种方法对我不起作用。