asp.net-mvc - 从 Asp.net core 中的日志记录中排除自定义异常类

标签 asp.net-mvc asp.net-core exception logging ilogger

有没有办法可以从日志系统中排除自定义异常类?我知道我可以按类别过滤掉,但我只想保留一个自制的异常类。

最佳答案

我没有找到使用内置过滤器的方法。但你可以使用 NLog使用 ASP.NET Core 日志系统。您编写日志消息的方式与以前相同,但它为您提供了更广泛的配置,包括过滤特定异常类型的方法。

示例

让我们创建一个包含两个目标日志文件的 nlog.config:一个包含所有消息,包括不需要的异常类型,另一个不包含此类型:

<targets>
    <target xsi:type="File" 
            name="all" 
            fileName="all-${shortdate}.log" 
            layout="${longdate}|${event-properties:item=EventId_Id}|${uppercase:${level}}|${logger}|${message} ${exception:format=tostring}" />
    <target xsi:type="File" 
            name="filtered" 
            fileName="filtered-${shortdate}.log" 
            layout="${longdate}|${event-properties:item=EventId_Id}|${uppercase:${level}}|${logger}|${message} ${exception:format=tostring}" />
</targets>

不需要的异常类型的排除是在日志记录规则中配置的。在此示例中,我们将过滤异常类型 SampleApplication.Exceptions.SampleException:

<rules>
  <logger name="*" minlevel="Trace" writeTo="all" />
  <logger name="*" minlevel="Trace" writeTo="filtered">
    <filters>
      <when condition="contains('${exception:format=Type}', 'SampleApplication.Exceptions.SampleException')" 
            action="Ignore" />
    </filters>
  </logger>
</rules>

关于asp.net-mvc - 从 Asp.net core 中的日志记录中排除自定义异常类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57723329/

相关文章:

asp.net - OutputCache 和 RenderAction 缓存整个页面

css - 带冒号的后缀标签文本

javascript - Asp MVC 应用程序逐渐变慢,因为 datatables.net 表在 ajax 成功时重新绘制

asp.net-mvc - ASP.NET Core MVC 应用程序中的总命中/访问者计数器

rest - ASP.NET Core 5 路由重定向

Java:何时使用检查异常、非检查异常或断言

c# - 如何在 MVC .Net 中的 session 超时后重定向?

asp.net - .NET Core 2.0中的CORS "No ' Access-Control-Allow-Origin header 出现在所请求的资源上。”

c# - 异常处理帮助

c++ - 是什么导致这种在 try block 展开期间抛出析构函数的奇怪行为?