log4net使用方法

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

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

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

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

log4net使用方法
<?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,程序实例如下:

log4net使用方法
    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

你可能感兴趣的:(log)