gpt4 book ai didi

c# - 有没有办法用 NLog 创建命名记录器并按此名称过滤日志记录?

转载 作者:太空狗 更新时间:2023-10-30 01:35:16 24 4
gpt4 key购买 nike

有时我不想在开发过程中记录所有内容,尤其是到 Visual Studio 输出窗口(目标 --> 调试器)。我想也许有一种方法可以命名一个特定的记录器(一个类)或几个记录器(来自多个类),这样在配置文件中我可以只为我目前感兴趣的开发中的类启用日志记录。

目前,我所有类(class)中都有这条最常见的 NLog 行:

private static readonly NLog.Logger logger = NLog.LogManager.GetCurrentClassLogger();

和一个非常标准的配置,只将日志呈现到输出窗口。

不幸的是,我没有找到如何按类启用/禁用记录器的方法。

最佳答案

正如我在评论中提到的,您可以使用 NLog Conditions评估并确定您要对结果做什么。正如文档所说:

Conditions are filter expressions used with the when filter. They consist of one or more tests. They >are used in the when filter to determine if an action will be taken.

还有一个非常有用的例子:

<rules>
<logger name="*" writeTo="file">
<filters>
<when condition="length('${message}') > 100" action="Ignore" />
<when condition="equals('${logger}','MyApps.SomeClass')" action="Ignore" />
<when condition="(level >= LogLevel.Debug and contains('${message}','PleaseDontLogThis')) or level==LogLevel.Warn" action="Ignore" />
<when condition="not starts-with('${message}','PleaseLogThis')" action="Ignore" />
</filters>
</logger>
</rules>

关于c# - 有没有办法用 NLog 创建命名记录器并按此名称过滤日志记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26541940/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com