当前位置: 代码网 > it编程>编程语言>Asp.net > .Net Core 使用 TagProvider 与 Enricher 丰富日志的操作代码

.Net Core 使用 TagProvider 与 Enricher 丰富日志的操作代码

2024年05月15日 Asp.net 我要评论
tagprovider[logproperties] 与 [logpropertyignore] 如果用在dto不存在任何问题,如果用在domain实体上,可能有点混乱。您可能不希望因日志记录问题而使

tagprovider 

[logproperties] 与 [logpropertyignore] 如果用在dto不存在任何问题,如果用在domain实体上,可能有点混乱。

您可能不希望因日志记录问题而使您的域模型变得混乱。对于这种情况,可以使用[tagprovider]属性来丰富日志。

我们仍然使用前面用的network实体,这次它不再使用[logpropertyignore]属性:

相反,我们定义了一个专用的“tagprovider”实现。

不需要实现接口或任何类,只需要正确的方法格式。

下面是我们给network对象的标签提供程序,我们只记录字段ipaddres字段,如下所示:

定义标签提供程序后,我们现在可以在日志记录方法中使用它。

将属性替换[logproperties]为[tagprovider]如下所示的属性:

按正常方式调用即可,可以看到network.ipaddress已经记录到日志的state属性中。

enricher 

microsoft.extensions.telemetry包可以像serilog一样丰富日志。首先添加nuget包

首先使用方法iloggingbuilder.enableenrichment()启用全局丰富,并通过addprocesslogenricher将进程的日志信息添加到日志中。

也可以通过metadata自定义使用的字段

这些内置的丰富器很方便,但也可以创建自定义的实现。

自定义logenricher

您可以通过从或接口istaticlogenricher和ilogenricher派生创建自己的丰富器

  • istaticlogenricher: istaticlogenricher—是全局的enricher,如果日志在整个声明周期中不变则可将其标签添加到记录器中。
  • ilogenricher- 每次写入日志时都会调用丰富器,这对于可能更改的值非常有用。

我们将创建一个简单的istaticlogenricher,将当前计算机名称添加到日志中,另外创建一个ilogenricher,将当前用户id添加到日志中。

到此这篇关于.net core 使用 tagprovider 与 enricher 丰富日志的文章就介绍到这了,更多相关.net core 使用 tagprovider 与 enricher内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com