zoukankan      html  css  js  c++  java
  • log4net使用方法

    1,下载log4net.dll动态库,然后添加到工程引用。

    2,在工程的AssemblyInfo.cs文件中关联配置文件,添加下面一句:

    [assembly: log4net.Config.DOMConfigurator(ConfigFile = "log4net.config", Watch= true) ]

    3,添加配置文件 log4net.config, 将下面的内容复制到 任意txt文件中,然后重命名为log4net.config,放到程序根目录下:

    <?xml version="1.0"?>
    <configuration>
      <configSections>   
        <!--添加log4net的配置信息声明-->
        <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
      </configSections>
      
      <!--log4net详细信息-->
      <log4net>
        <!--根日志是所有日志对象的祖先,被其他日志对象继承-->
        <root>
          <!-- 级别高低:ALL < DEBUG < INFO < WARN < ERROR < FATAL < OFF  -->
          <level value="ALL" />
          <!--文件形式记录日志 Rolling代表日志可以记录在不止一个文件中;还可以使用控制台或数据库记录日志 -->
          <appender-ref ref="RollingLogFileAppender" />  
        </root>   
        
        <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
          <!--定义文件存放路径,相对于log4net.config的位置-->
          <param name="File" value="log\" />
             
          <!--是否在文件中追加日志信息-->
          <param name="AppendToFile" value="true" />
          <!--如果一直输出到同一文件中,则不需要下面代码-->
          <!--文件输出以日期方式滚动-->
          <param name="RollingStyle" value="Date" />
          <!--日志文件名称以输出日期命名,可更改其他日期输出方式-->
          <datePattern value="yyyyMMdd'.log'" />
          
          <lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
          <param name="MaxSizeRollBackups" value="100" />
          <!--表明输出的日志信息是否一直在同一文件中-->    
          <param name="StaticLogFileName" value="false" />
          <!--备份文件的最大文件数目-->
          <maxSizeRollBackups value="10" />
          <!--日志文件最大尺寸-->
          <maximumFileSize value="500KB" />
          <!--输出格式-->
          <layout type="log4net.Layout.PatternLayout">
            <param name="ConversionPattern" value="%n时间:%d 类名:%c 行数:%L 级别:%p%n内容:%m%n" />
          </layout>
          <!--日志输出级别-->     
          <filter type="log4net.Filter.LevelRangeFilter">
            <levelMin value="ALL" />
            <levelMax value="FATAL" />
          </filter>
        </appender>
        
      </log4net>
    </configuration>
    View Code

    4,程序实例如下:

        public partial class test : System.Web.UI.Page
        {
            /// <summary>
            /// 定义一个静态的日志对象
            /// </summary>
            private static ILog LOG = log4net.LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);              
    
            protected void Page_Load(object sender, EventArgs e)
            {
               LOG.Info("这是普通消息");
               try
               {
                   int i = 0;
                   i = 0 / i;
               }
               catch(Exception ex)
               {
                   LOG.Error("执行Page_Load异常", ex);
               }          
            }
        }
    View Code

    5,log4net 多个配置文件,写入多个日志文件,多个程序或多个应用程序集同时使用log4net 的解决办法:

    (1)添加一个日志类,定义一个静态的Logger对象,然后在静态构造函数中初始化,其他地方直接使用这个对象写日志。

        public class Log
        {
    
            static Log()
            {
    
                string sPath = System.Web.HttpContext.Current.Server.MapPath("~/log4net.config");   
                FileInfo log4NetConfigFile = new FileInfo(sPath);
                if (log4NetConfigFile == null || !log4NetConfigFile.Exists) throw new Exception("unable to find log file");
                log4net.Config.XmlConfigurator.ConfigureAndWatch(log4NetConfigFile);
                Logger = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); 
            }
    
    
            /// <summary>
            /// 日志对象
            /// </summary>
            public static log4net.ILog Logger ; 
        }

    这里的关键是使用log4net自带的一个方法:log4net.Config.XmlConfigurator.ConfigureAndWatch

    参考网址:http://apache-logging.6191.n7.nabble.com/How-to-use-separate-config-file-for-log4net-td22584.html

    wijitha 的回答。

    这个就可以定义多个配置文件,每个程序集使用自己的配置文件。

    参考文章:

     Log4Net使用指南  http://www.cnblogs.com/dragon/archive/2005/03/24/124254.html

     Log4Net 使用基本设置 http://blog.sina.com.cn/s/blog_6cb7b8d701011ttj.html

  • 相关阅读:
    2.Android之按钮Button和编辑框EditText学习
    《DSP using MATLAB》Problem 3.8
    《DSP using MATLAB》Problem 3.7
    《DSP using MATLAB》Problem 3.6
    《DSP using MATLAB》Problem 3.5
    《DSP using MATLAB》Problem 3.4
    《DSP using MATLAB》Problem 3.3
    《DSP using MATLAB》Problem 3.2
    《DSP using MATLAB》Problem 3.1
    《DSP using MATLAB》Problem 2.20
  • 原文地址:https://www.cnblogs.com/wang7/p/3696768.html
Copyright © 2011-2022 走看看