• 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>
  • 相关阅读:
    天下没有不会这么回事!不会就学——北漂18年(28)
    Python Module_sys/random
    Python Module_sys/random
    redis 主从切换
    第一章 数据引用与匿名存储
    第12章 对象上
    zabbix 发送邮件配置
    第10章 包 名字空间,变量和函数
    perl 类 对象 方法
    perl数据结构输出 Data::Dumper
  • 原文地址:https://www.cnblogs.com/herizai/p/7110068.html
Copyright © 2020-2023  润新知