Logging 如何使用.NET Core日志根据类别筛选日志文件?
我已经这样配置了我的记录器工厂Logging 如何使用.NET Core日志根据类别筛选日志文件?,logging,.net-core,serilog,Logging,.net Core,Serilog,我已经这样配置了我的记录器工厂 loggerFactory .AddConsole() .AddDebug() .AddFile("Logs/trace-{Date}.txt"); 在我的构造函数中,我依赖于例如ILogger。据我所知,该框架随后将为我的服务类创建一个logger实例,其类别名称基于类型的全名 在我的日志文件中,我看到如下消息: 2017-07-07T09:10:46.5678506+02:00协商42d9720f-32a2-46f9-9042-08D
loggerFactory
.AddConsole()
.AddDebug()
.AddFile("Logs/trace-{Date}.txt");
在我的构造函数中,我依赖于例如ILogger
。据我所知,该框架随后将为我的服务类创建一个logger实例,其类别名称基于类型的全名
在我的日志文件中,我看到如下消息:
2017-07-07T09:10:46.5678506+02:00协商42d9720f-32a2-46f9-9042-08D4C4BC44881中参与者b943174e-8022-4e33-ef0d-08D4C4BC44879的套接字注册失败。(799c4f21)
我似乎记得在某个地方读到过这样的文章:为了节省文件大小,对类别进行了哈希处理,因此我怀疑时间戳和日志级别(0HL…1RU
)之间的差别代表了类别,但这并不是真正可以搜索或发现的
如何配置记录器以避免混淆日志文件中的类别名称?根据您使用的代码(具体记录器实现很重要)。这个有趣的字符串
0HL…1RU
实际上是一个唯一的请求Id。我猜这个日志程序不支持纯文本日志的日志类别
解决方法1:使用JSON日志:
loggerFactory.AddFile("filename", isJson: true);
SourceContext
属性将出现在日志输出中,其中包含您的日志类别:
"SourceContext":"MyNamespace.MyServiceClass"
解决方法2:只需使用另一种方法,如NLog或full standalone