• C# log4net 日志记录


    一、log4net常用节点介绍

    节点名称                  说明
    appender                  type=RollingFileAppender 的意思是将日志以回滚文件的形式写到文件中
    file  文件写入位置
    appendToFile  是否追加到文件
    maximumFileSize 

    最大的文件大小。我们可以使用"KB", "MB" 或 "GB"为 MaxFileSize 作为后缀限定大小。默认的文件大小是10MB。

    rollingStyle="Size" 时才有效

    RollingStyle 

    是文件创建的方式。上例中市设置为以Date方式创建新文件

    DatePattern 

    日期格式,当我们设置了RollingStyle 为Date方式后,Log4Net会自动使用DatePattern 中的日期格式来创建新的日志文件

    MaxSizeRollBackups          

    当日志文件达到MaxFileSize大小,就自动创建备份文件。备份文件的多少由MaxSizeRollBackups决定。比如说,我们是以日期格式作为日志文件名的,假设今天是2013-10-28,那么今天创建的日志文件名就是20131028.log,当这个文件中要超过MaxFileSize的时候,Log4Net就自动将老的20131028.log改名为20131028.log.1,并创建一个新的20131028.log文件

    rollingStyle="Size" 时才有效

    StaticLogFileName 

    是否采用静态文件名。因为我们这个例子是采用以日期作为文件名,每天的日志文件的名字都是动态的,所以上例中为false。如果采用静态文件名,那么日志文件的名字就是唯一确定的。可以参考下面的配置文件进行设置。下面的配置文件中就是采用静态文件名,生成的日志文件名都是log.txt

       

    二、安装log4net及配置

    1. 使用nuget 安装 或者 下载 log4net 文件,然后添加引用。
    2. 在webconfig 中添加配置节点或者单独一个log4net.config 文件。如下:
      <?xml version="1.0" encoding="utf-8"?>
      
      <configuration> 
        <configSections> 
          <section name="log4net" type="System.Configuration.IgnoreSectionHandler"/> 
        </configSections>  
        <log4net> 
          <!--按照日期创建文件夹,并生成日志文件-->  
          <!--<appender name="LogFileAppender" type="log4net.Appender.FileAppender">
            <file type="log4net.Util.PatternString" value="Logs\%date{yyyy-MM}\%date{yyyy-MM-dd}.log" />
            <appendToFile value="true" />
            <layout type="log4net.Layout.PatternLayout,log4net">
              <param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss} 线程ID:[%t] 日志级别:%-5p %c  -描述: %m%n " />
            </layout>
          </appender>-->  
          <!--按照日期创建文件夹,并生成日志文件,支持按文件的自定义大小创建多个文件-->  
          <!--<appender name="LogFileAppender" type="log4net.Appender.RollingFileAppender">  
            <file type="log4net.Util.PatternString" value="Logs\%date{yyyy-MM-dd}\%date{yyyy-MM-dd}.log" />  
            <appendToFile value="true" />  
            <rollingStyle value="Size" />  
            <maximumFileSize value="5KB" />
            <maxSizeRollBackups value="30" />  
            <staticLogFileName value="false" />  
             <layout type="log4net.Layout.PatternLayout,log4net">
              <param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss} 线程ID:[%t] 日志级别:%-5p %c  -描述: %m%n " />
            </layout> 
          </appender>-->  
          <!--按照日期创建文件夹,并生成日志文件-->  
          <appender name="LogFileAppender" type="log4net.Appender.RollingFileAppender"> 
            <file value="Logs\"/>  
            <appendToFile value="true"/>  
            <!--<maximumFileSize value="5KB" />
            <maxSizeRollBackups value="30" />-->  
            <staticLogFileName value="false"/>  
            <rollingStyle value="Date"/>  
            <datePattern value="yyyy-MM\yyyy-MM-dd'.log'"/>  
            <layout type="log4net.Layout.PatternLayout,log4net"> 
              <param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss} 线程ID:[%t] 日志级别:%-5p %c  -描述: %m%n "/> 
            </layout> 
          </appender>  
          <root> 
            <level value="debug"/>  
            <!--文件形式记录日志-->  
            <appender-ref ref="LogFileAppender"/> 
          </root> 
        </log4net> 
      </configuration>
    3. 在程序中指定配置
      [assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.config", ConfigFileExtension = "config", Watch = true)]

      或者在Global.asax文件中添加如下配置

      log4net.Config.XmlConfigurator.Configure();

      或者在初始化log对象时初始化配置信息

      public class LoggerManager
          {
              private static readonly ILog log = null;
              static LoggerManager()
              {
                  FileInfo file = null;
                  //从指定位置的log4net文件初始化配置
                  file = HttpContext.Current != null ? new FileInfo(HttpContext.Current.Server.MapPath("~/config/log4net.config")) : new FileInfo(AppDomain.CurrentDomain.SetupInformation.ApplicationBase + @"/config/log4net.config");
                  log4net.Config.XmlConfigurator.ConfigureAndWatch(file);
                  log = log4net.LogManager.GetLogger("LogFileAppender");
              }
       }

             Log4net SDK Document

     

     

  • 相关阅读:
    Jzoj4765 Crisis
    Jzoj4764 Brothers
    Jzoj4764 Brothers
    Jzoj4756 幻象
    Jzoj4756 幻象
    Jzoj4755 快速荷叶叶变换
    Jzoj4755 快速荷叶叶变换
    力扣算法题—059螺旋矩阵
    力扣算法题—058最后一个单词长度
    力扣算法题—057插入区间
  • 原文地址:https://www.cnblogs.com/qiufengke/p/5337147.html
Copyright © 2020-2023  润新知