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(); } } }