这篇文章上次修改于 714 天前,可能其部分内容已经发生变化,如有疑问可询问作者。
转载自:https://www.cnblogs.com/farb/p/log4netLogingByDateOrTime.html
<?xml version="1.0" encoding="utf-8" ?>
<log4net>
  <appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender" >
     <lockingModel type="log4net.Appender.FileAppender+MinimalLock"/>
    <file value="Logs/" />
    <datePattern value="yyyyMMdd-HH'.txt'"/>
    <appendToFile value="true" />
    <!--<rollingStyle value="Date" />-->
    <staticLogFileName value="false"/>
    <rollingStyle value="Composite" />
    <maxSizeRollBackups value="10"/>
    <maximumFileSize value="1MB"/>
    <layout type="log4net.Layout.PatternLayout">
      <conversionPattern value="%-5level %date [%-5.5thread] %-40.40logger - %message%newline" />
    </layout>
  </appender>
  <root>
    <appender-ref ref="RollingFileAppender" />
    <level value="DEBUG" />
  </root>
  <logger name="NHibernate">
    <level value="WARN" />
  </logger>
</log4net>

这里只解释几个稍微不一样的地方,其他的大家可自己搜索资料学习。

  • <datePattern value="yyyyMMdd-HH'.txt'"/>日期模式,这个会生成到文件名中,注意这里是日期(变量)和文件后缀.txt(常量)的组合,其中常量是带单引号的。
  • <staticLogFileName value="false"/>是否设置为静态日志文件名,这里如果不设置的话,上面的配置不会起作用。
  • <rollingStyle value="Composite" /> 复合(日期和文件大小)滚动样式。
  • <maxSizeRollBackups value="10"/> 最大滚动备份数量

总之,我的配置文件的意思就是,按照小时记录日志,每个文件最大为1MB,每小时最多保存10个文件(也就是你这1小时内最多能看到10个文件)。