Log4Net详解(1)简单应用

Log4Net详解 (1) 简单应用

1、安装Log4Net

下载地址

http://logging.apache.org/log4net/download.html

下载文件

log4net-1.2.11-bin-newkey.zip

在项目中引用

\bin\net\4.0\release\log4net.dll

2、Log4Net结构

Logger(记录器)

Repository(库)

Appender(附着器)

Layout(布局)

3、配置Log4Net

log4net框架会在相对于AppDomain.CurrentDomain.BaseDirectory 属性定义的目录路径下查找配置文件。框架在配置文件里要查找的唯一标识是<log4net>标签。

Log4Net的配置信息可以放在以下两种类型的文件中:

(1) 程序的配置文件

winform:App.config

web:web.config

(2) 自定义的配置文件

如:log4net.config、log4net.xml

(如果使用自定义配置文件,需要设置该文件的属性“复制到输出目录”为“始终复制”)

基本配置文件结构:

View Code
<?xml version="1.0" encoding="utf-8" ?>

<configuration>

    <configSections>

          <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" />

    </configSections>

 

    <log4net debug="true">

          <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">

              <file value="applicationLog.log" />

              <!-- file可以指定具体的路径,如:d:\\mylog.log。不指定的话log被生成在项目的bin/Debug 或者 bin/Release目录下 (web的项目 默认生成在根目录下) -->

              <appendToFile value="true" />

              <rollingStyle value="Size" />

              <maxSizeRollBackups value="10" />

              <!--备份log文件的个数最多10个-->

              <maximumFileSize value="2MB" />

              <!--每个log文件最大是2M,如果超过2M将重新创建一个新的log文件,并将原来的log文件备份。-->

              <staticLogFileName value="true" />

              <layout type="log4net.Layout.PatternLayout">

                  <!--指定log的格式-->

                  <conversionPattern value="[%date]  %thread -- %-5level -- %logger [%M] --   %message%newline" />

              </layout>

          </appender>

 

          <root>

              <level value="DUBEG" />

              <!--指定将此级别及以上的log打印到log文件中-->

              <appender-ref ref="RollingLogFileAppender" />

          </root>

    </log4net>

</configuration>

将以下代码加入到AssemblyInfo.cs的底部:

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

View Code
[assembly:   log4net.config.XmlConfigurator(Watch=true)]   
// 监视默认的配置文件,AppName.exe.config
// 将log4net的配置节编写在:winform中App.config,webform中web.config

[assembly:   log4net.config.XmlConfigurator(ConfigFileExtension="log4net",Watch=true)] 
// 监视配置文件,AppName.exe.log4net
// 将log4net的配置节编写在:winform中App.config,webform中web.config,但是,生成的项目配置文件的后缀为自定义扩展名,如:.log4net

[assembly:   log4net.config.XmlConfigurator(ConfigFile="log4net.config")] 
// 使用配置文件log4net.config,不监视改变。
// 将log4net的配置节编写在自定义文件中,如:log4net.config。

4、程序中调用Log4Net

View Code
using   System;
using   log4net;

namespace   TestLog4Net5
{
    class Program
    {
        private static readonly ILog Log =   LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);

        static void Main(string[] args)

        {
            //记录错误日志
         Log.Error("error", new   Exception("发生了一个异常"));

            //记录严重错误
         Log.Fatal("fatal", new   Exception("发生了一个致命错误"));

            //记录一般信息
         Log.Info("info");

            //记录调试信息
         Log.Debug("debug");

            //记录警告信息
         Log.Warn("warn");

            Console.WriteLine("日志记录完毕。");

            Console.Read();
        }
    }
}
原文地址:https://www.cnblogs.com/judgelee/p/2993457.html