.net - Log4Net-仅注销某些文件的异常堆栈跟踪

标签 .net log4net log4net-configuration

我目前使用log4net在应用程序中有多个日志文件。

我有一个顶层日志文件,其中包含每种类型的消息。我还有一个错误日志文件,其中仅包含错误信息。我正在尝试对其进行配置,以便特定的异常详细信息和堆栈跟踪仅出现在错误日志文件中。

我正在使用的电话是Log.Error(myMessage, myException);
我的配置如下所示:

<configuration>
  <log4net>

    <root>
     <level value="ALL"/>
     <appender-ref ref="GeneralTextLog"/>
     <appender-ref ref="ErrorTextLog"/>
    </root>

<!-- The general appender rolls by date -->
<appender name="GeneralTextLog" type="log4net.Appender.RollingFileAppender">
  <filter type="log4net.Filter.LevelRangeFilter">
    <level value="ALL"/>
  </filter>
  <layout type="log4net.Layout.PatternLayout">
    <conversionPattern value="%d{HH:mm:ss.fff} [%type] %-5p %message%n"/>
  </layout>
  <rollingStyle value="Date"/>
  <file value="C:/Logs/General_"/>
  <datePattern value="yyyy_MM_dd'.log'" />
  <appendToFile value="true"/>
  <staticLogFileName value="false"/>
</appender>

<!-- The Error appender rolls by date -->
<appender name="ErrorTextLog" type="log4net.Appender.RollingFileAppender">
  <filter type="log4net.Filter.LevelRangeFilter">
    <levelMin value="WARN"/>
    <levelMax value="FATAL"/>
  </filter>
  <layout type="log4net.Layout.PatternLayout">
    <conversionPattern value="%d{HH:mm:ss.fff} [%type] %-5p %message%newline%exception"/>
  </layout>
  <rollingStyle value="Date"/>
  <file value="C:/Logs/Error_"/>
  <datePattern value="yyyy_MM_dd'.log'" />
  <appendToFile value="true"/>
  <staticLogFileName value="false"/>
</appender>

<!-- Loggers -->
<logger name="DefaultLogger">
  <appender-ref ref="GeneralTextLog"/>
  <level value="ALL"/>
</logger>

<logger name="ErrorLogger">
  <appender-ref ref="ErrorTextLog"/>
  <levelMin value="WARN"/>
  <levelMax value="FATAL"/>
</logger>



尽管我在错误日志的conversionPattern中仅包含%exception,但两个日志中都显示了堆栈跟踪。有谁知道我该如何阻止这种情况的发生?

最佳答案

像这样配置布局(GeneralTextLog Appender):

<layout type="log4net.Layout.PatternLayout">
    <IgnoresException value="False" />
    ...

IgnoresException设置为false会告诉附加程序,布局将处理异常。因此,您可以选择不打印堆栈跟踪。

关于.net - Log4Net-仅注销某些文件的异常堆栈跟踪,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3659271/

相关文章:

.net - .NET 组件访问电子邮件收件箱的建议

c# - 启用迁移-ContextTypeName 错误 : Cannot find parameter

.net - 如果不触及底层集合,ReadOnlyCollection 是线程安全的吗?

当滚动样式设置为日期时,log4net 有时不会滚动日志文件

log4net - 防止 Log4Net 写入所有日志文件

logging - Log4Net多个记录器

c# - C# 中 SQLDataSource 上的 FilterExpression

asp.net-mvc - ASP.Net MVC异常记录与错误处理结合

c# - 在到达附加程序之前编辑 Log4Net 消息

使用 CaSTLe.Facilities.Logging 和 log4net 进行日志记录