.net - 区分异常并确定要记录的内容

标签 .net logging nlog exception-logging

是否有任何已知的方法可以根据异常类型记录不同的信息?

这个想法是只记录每个异常类型的相关信息。 例如:已知异常/业务逻辑异常不需要记录堆栈跟踪,因为它们是“预期的”

基本上我要问的是,在记录异常时是否有任何已知的做法,以使日志尽可能有用而没有任何垃圾。

最佳答案

您可以在 <rules> 中进行过滤,例如

<rules>
    <logger name="*" writeTo="file1">
        <filters>
            <when condition="'${exception:format=Type}' == 'ExpectedException' " action="LogFinal" />
            <when condition="true" action="Ignore" />

        </filters>
    </logger>
    <logger name="*" writeTo="file2">
        <filters>
            <when condition="'${exception:format=Type}' == 'OtherException' " action="LogFinal" />
            <when condition="true" action="Ignore" />

        </filters>
    </logger>    
</rules>

参见when filterconditions文档。

关于.net - 区分异常并确定要记录的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35437246/

相关文章:

c# - div 标签的递归正则表达式(不尝试用正则表达式解析 html)

javascript - 从 javascript 在服务器上创建日志条目的最有效方法是什么?

java - 从tomcat日志中提取sql查询

c# - ASP.NET Core 日志记录不适用于生产

c# - Crystal Reports 和 .NET 4 - 无法加载文件或程序集(使用 LegacyV2RuntimeActivationPolicy ="false")crdb_adoplus.dll

.net - .NET的Debug.Write()输出到哪里?

c# - 需要从 View 调用 VIewModel 的方法

java - 记录输入流

c# - NLog MappedDiagnosticsLogicalContext 不工作在异步/等待与 ConfigureAwait(false)

c# - 如何包装项目中的每个函数?