c# - log4net 不在单独的文件中记录错误和 fatal error

标签 c# log4net

我试图将错误和 fatal error 分离到单独的日志文件中,但我没有看到它在单独的文件中记录。这是我的配置文件。你能指出我犯了什么错误吗?

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <configSections>
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
  </configSections>
  <log4net>
        <appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
      <file type="log4net.Util.PatternString" value="C:\NinjaTraderLogs\NinjaLogs.txt" />
      <appendToFile value="true" />
      <rollingStyle value="Size" />
      <maxSizeRollBackups value="5" />
      <maximumFileSize value="10MB" />
      <staticLogFileName value="true" />
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%date %level  (%property{method}) (%property{state})   (%property{instrument}) - %message%newline" />
      </layout>
	  <level value="All" />
    </appender>
	      <appender name="FatalError" type="log4net.Appender.RollingFileAppender">
      <file type="log4net.Util.PatternString" value="C:\NinjaTraderLogs\NinjaLogs_Fatal.txt" />
      <appendToFile value="true" />
      <rollingStyle value="Size" />
      <maxSizeRollBackups value="5" />
      <maximumFileSize value="10MB" />
      <staticLogFileName value="true" />
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%date %level  (%property{method}) (%property{state})   (%property{instrument}) - %message%newline" />
      </layout>
	  <filter type="log4net.Filter.LevelRangeFilter">
     <levelMin value="ERROR" />
     <levelMax value="FATAL" />
  </filter>
    </appender>
    <root>
     
      
      <appender-ref ref="RollingFileAppender" />
    </root>
  </log4net>
</configuration>
 

最佳答案

<root> 下再创建一个 appender ref,如下所示

<root>           
  <appender-ref ref="RollingFileAppender" />
  <appender-ref ref="FatalError" />
</root>

在调用登录代码之前,请确保调用 XmlConfigurator函数 Configure (全局调用)喜欢

log4net.Config.XmlConfigurator.Configure();

最后但同样重要的是,确保您对您尝试创建日志文件的目录具有写入权限。我建议您检查一次 Windows 事件日志 Application登录以查看是否发生任何错误。

关于c# - log4net 不在单独的文件中记录错误和 fatal error ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37780314/

相关文章:

c# - 从Java转换为C#:用于重新编码字符串的简单代码

c# - 为什么 Copy if newer 不仅在输出目录中的文件较旧时替换?

logging - 每个 Web 服务/页面使用单独的 log4net

c# - log4Net 没有按预期登录到控制台

.net - 如何在 log4net 中过滤自定义级别?

c# - 静态成员对象的初始化c#

c# - 箱线图工具提示可见性

c# - Input.touchCount 不起作用

c# - WPF 应用程序中的 Log4Net 设置

.net - 跟踪与日志记录以及 log4net 如何适应?