log记录日志使用说明

一、

想要让Log4net日志(以下称日志)按每月自动归类为一个文件夹,为此,学习和修改了log4net.config文件。查了资料,重点是以下这些参数:

<param name="File" value="Log/log.config" />
<param name="AppendToFile" value="true" />
<param name="RollingStyle" value="Date" />
<param name="DatePattern" value="_yyyy-MM-dd.'config'" />
<param name="StaticLogFileName" value="true" />

众说纷纭,许多说得让人看后似懂非懂,经过说起来都是泪的实验,终于有了明确的结论,整理发表出来避免后人走弯路。
1.StaticLogFileName的值如果为true,则当前日志文件(相对于历史日志文件而言)的文件名只取File参数。如果为false,则文件名取File+DatePattern。
2.File的值是静态的如果写“yyyy-MM”就是“yyyy-MM”而不会转成当前的年份和月份,而且斜扛“/”与反斜扛“\”效果相同,连续2扛也与1扛相同。
3.DatePattern的值是动态的“yyyy”代表4位年份,详细参考网上的众多资料(这个不难得到)。如果想表达静态的字符(如“y”)有2种办法,1是使用转义字符“\”,即“\y”,2是使用一对单引号限定,即“'y'”。如上面的value="_yyyy-MM-dd.'config'",就是因为fig有特殊含义,所以把“config”用单引号包含起来了。
4.修改了(网站上的)log4net.config文件,使它生效的方法是重启网站(我没有试着去操作应用程序池)。实测重启网站有约10%没有使它生效,但如果是先停止网站再启动,则100%生效。
以上4点最关键是第1点,也是众多资料所没有说清楚的(本人的汉字理解能力有问题?)。最终符合我要求的配置如下:

<param name="File" value="Log\" />
<param name="AppendToFile" value="true" />
<param name="RollingStyle" value="Date" />
<param name="DatePattern" value="yyyy-MM\\yyyy-MM-dd.'log'" />
<param name="StaticLogFileName" value="false" />

以上是基于我自己做的实验而得出的结论,难免不够系统和全面,限于本人水平,难免有错误。如有发现错漏,欢迎指正。

二、

log4net配置文件设置  

2011-11-16 13:15:41|  分类: Notes|举报|字号 订阅

log4net的使用,主要在配置文件的设置上,明白了如何配置就基本能够封装自己要用的Log公共类了,以下是Log4net的一个配置示例及常用参数讲解。

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <!--Log设定-->
  <configSections>
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net-net-1.0" />
  </configSections>
  <log4net>
    <!--日志记录器logger,可以有多个-->
    <logger name="fileLog">
      <level value="ALL" />
      <appender-ref ref="RollingLogFileAppender" />
      <appender-ref ref="ConsoleAppender" />
    </logger>
    <appender name="ConsoleAppender"  type="log4net.Appender.ConsoleAppender" >
      <layout type="log4net.Layout.PatternLayout">
        <param name="ConversionPattern"  value="[%d][%-4p] %m%n"/>
      </layout>
    </appender>
    <appender name="RollingLogFileAppender"  type="log4net.Appender.RollingFileAppender" >
      <!--log存放的路径-->
      <param name="File" value="log_" />
      <param name="AppendToFile" value="true" />
      <param name="StaticLogFileName" value="false"/>
      <param name="MaximumFileSize" value="10MB"/>
      <param name="Threshold" value="ALL"></param>
      <param name="DatePattern" value="yyyyMM&quot;\\log_&quot;yyyyMMdd&quot;.log&quot;"/>
      <param name="RollingStyle" value="Composite"/>
      <param name="CountDirection" value="1"/>
      <param name="AppendToFile" value="true"/>
      <layout type="log4net.Layout.PatternLayout">
        <param name="ConversionPattern"  value="[%d][%-4p] %m%n"  />
      </layout>
    </appender>
  </log4net>
</configuration>
RollingLogFileAppender(文件记录)参数:< xmlnamespace prefix ="o" ns ="urn:schemas-microsoft-com:office:office" />

 

 

参数名

描述

filter

可以有0或多个filter,具体配置在下面的Filter项说明。

layout

可以有0或者说1个layout,当没有layout时,没有输出。具体配置在下面的layout项说明

param

Param有多个可以进行配置,常用的:

名称

描述

File

文件路径,如果RollingStyle为CompositeDate,则这里设置为目录,文件名在DatePattern里设置,其他则这里要有文件名。已经扩展支持虚拟目录

RollingStyle

创建新文件的方式,可选为Size(按文件大小),Date(按日期),Once(每启动一次创建一个文件),Composite(按日期及文件大小),默认为Composite

DatePattern

当RollingStyle为CompositeDate这里设置文件名格式

StaticLogFileName

True/false,默认为true。为true时,RollingStyler的date值将无效。且为true时,需要在file里指定文件名,所有日志都会记录在这个文件里。

MaximumFileSize

当RollingStyle为CompositeSize这里设置最大文件大小(可以KB,MB,GB为单位,默认为字节)

CountDirection

默认值为-1。当文件超过MaximumFileSize的大小时,如果要创建新的文件来存储日志,会根据CountDirection的值来重命名文件。大于-1的值时,file里指定的文件名会依次加上.0,.1,.2递增。当等于或小于-1时,创建依赖于MaxSizeRollBackups参数值,创建备份日志数。

MaxSizeRollBackups

备份日志数目,默认为0。在CountDirection为负数时有效。

Threshold

起始日志级别,取值为下面文章讨论的预定义日志级别。低于此级别的日志不会被记录。

AppendToFile

True/false,默认为true。当文件存在时,是否在原文件上追加内容。

例如:

<param name="File" value="UpLoads\\Log\\"/>

    <param name="MaximumFileSize" value="3000"/>

    <param name="StaticLogFileName" value="false"/>

    <param name="Threshold" value="Debug"></param>

    <param name="DatePattern" value="yyyyMM&quot;\\#{ServerHostName}-&quot;yyyyMMdd&quot;.log&quot;"/>

    <param name="RollingStyle" value="Date"/>

三、
 <?xml version="1.0" encoding="utf-8"?>
 <configuration>
 <configSections>
  <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4Net" />
  </configSections>
    
    <log4net>
      <!--配置日志的级别,低于此级别的就不写到日志里面去
        OFF、FATAL、ERROR, WARN, INFO, DEBUG, ALL
      -->
     <root>
       <level value="DEBUG" />
       <appender-ref ref="LogFileAppender" />
       <appender-ref ref="ConsoleAppender" />
     </root>
     
     <logger name="WebLogger">
       <level value="ERROR" />
     </logger>
 
     <!--输出到文件-->
     <appender name="LogFileAppender" type="log4net.Appender.RollingFileAppender,log4net">
       <param name="File" value="Log/" />
       <param name="AppendToFile" value="true" />
       <!-- 切割最多文件数 -1表示不限制产生日志文件数-->
       <param name="MaxSizeRollBackups" value="-1"/>
       <!-- 每个文件的大小限制  -->
      <param name="MaximumFileSize" value="10MB"/>
       <!-- RollingStyle Composite 综合  Size 按大小  Date 按时间 -->
       <param name="RollingStyle" value="Composite" />
       <param name="DatePattern" value="&quot;Logs_&quot;yyyyMMdd&quot;.txt&quot;" />
       <param name="StaticLogFileName" value="false" />
       <layout type="log4net.Layout.PatternLayout,log4net">
         <param name="Header" value="&#xD;&#xA;----------------------application startup--------------------------&#xD;&#xA;" />
         <param name="Footer" value="&#xD;&#xA; ----------------------application shutdown--------------------------&#xD;&#xA;" />
         <param name="ConversionPattern" value="%d [%t] %-5p %c - (%line)  %m%n" />
       </layout>

       <filter type="log4net.Filter.LevelRangeFilter">
         <param name="LevelMin" value="ALL" />
         <param name="LevelMax" value="OFF" />
       </filter>
     </appender>
 
     <!--输出控制台-->
     <appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender,log4net">
       <layout type="log4net.Layout.PatternLayout,log4net">
         <param name="ConversionPattern" value="%d [%t] %-5p %c - (%line) %m%n" />
       </layout>
     </appender>
     
   </log4net>
 </configuration>

 

posted @ 2017-07-03 10:59  herizai  阅读(1534)  评论(0编辑  收藏  举报