Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Logging 如何使用.NET Core日志根据类别筛选日志文件?_Logging_.net Core_Serilog - Fatal编程技术网

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