log4net RollingFileAppender rollingstyle(日期和级别)

log4net RollingFileAppender rollingstyle(日期和级别),log4net,Log4net,我一直在绞尽脑汁想得到log4net在日期和级别上的滚动风格 我试图实现的是: 1月1日: 2014-01-01_DEBUG.txt 2014-01-01_INFO.txt 2014-01-01_ERROR.txt 1月2日: 2014-01-02_DEBUG.txt 2014-01-02_INFO.txt 2014-01-02_ERROR.txt实现这一点的最简单方法是为每个级别创建一个RollingFileAppender,并过滤每个appender以仅拾取一个级别: <appende

我一直在绞尽脑汁想得到log4net在日期和级别上的滚动风格

我试图实现的是:

1月1日:
2014-01-01_DEBUG.txt
2014-01-01_INFO.txt
2014-01-01_ERROR.txt

1月2日:
2014-01-02_DEBUG.txt
2014-01-02_INFO.txt

2014-01-02_ERROR.txt

实现这一点的最简单方法是为每个级别创建一个RollingFileAppender,并过滤每个appender以仅拾取一个级别:

<appender name="DebugAppender" type="log4net.Appender.RollingFileAppender">
      <filter type="log4net.Filter.LevelRangeFilter">
        <levelMin value="DEBUG" />
        <levelMax value="DEBUG" />
      </filter>
<!-- ... -->

<appender name="InfoAppender" type="log4net.Appender.RollingFileAppender">
      <filter type="log4net.Filter.LevelRangeFilter">
        <levelMin value="INFO" />
        <levelMax value="INFO" />
      </filter>
<!-- ... -->

然后简单地将它们全部插入所需的记录器

<root>
  <level value="DEBUG" />
  <appender-ref ref="DebugAppender" />
  <appender-ref ref="InfoAppender" />
  <appender-ref ref="ErrorAppender" />
</root>


@sammy-所以没有办法为所有调试、信息和错误使用一个appender?即使使用PatternString(),我也看不到任何级别选项。您可以创建自己的PatternConverter来尝试并反映文件名中的级别,但当此解决方案工作正常时,您可能会遇到更多麻烦,请仔细检查。。因为您可以像这样在nlog中包含level:fileName=“${logDirectory}/${shortDate}{u${level}.log”,所以我对log4net的理解与nlog一样强大