园子里有一篇 Log4Net使用指南 写得很详细,推荐给准备使用log4net的同学看看。
如果你不想花太多时间研究,也可以按下面的步骤在5分钟内搞定:
1、添加对log4net.dll的引用
2、修改配置文件,以app.config为例,参考内容如下:
<?xml version="1.0" encoding="utf-8" ?> <configuration> <configSections> <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net"/> </configSections> <log4net> <logger name="jimmy.logger"> <!--ALL->DEBUG->INFO->WARN->ERROR->FATAL->OFF 级别依次增加, 即:如果设置为INFO,则DEBUG类型的日志将不被记录; 如果设置为ERROR,则仅ERROR/FATAL二种级别的日志将被记录--> <level value="WARN"/> <appender-ref ref="RollingLogFileAppender"/> </logger> <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender"> <!--是否追加到文件--> <param name="AppendToFile" value="true" /> <!--日志文件最大10M--> <param name="MaxSizeRollBackups" value="10" /> <param name="StaticLogFileName" value="false" /> <!--日志文件名前缀--> <param name="File" value="log\\" /> <!--日志文件名按日期生成--> <param name="RollingStyle" value="Date" /> <!--日志文件名的生成格式:yyyyMMdd.txt--> <param name="DatePattern" value="yyyyMMdd".txt"" /> <!--日志记录的格式--> <layout type="log4net.Layout.PatternLayout"> <param name="ConversionPattern" value="%d [%t] %-5p %c [%x] - %m%n" /> </layout> </appender> </log4net> </configuration>
3、示例代码
using System; using log4net; namespace console_demo { class Program { static void Main(string[] args) { log4net.Config.XmlConfigurator.Configure(); ILog log = LogManager.GetLogger("jimmy.logger"); //这里的名字,要跟config中 logger name中对应 Console.WriteLine("log4net started..."); Console.WriteLine("IsInfoEnabled={0}\nIsDebugEnabled={1}\nIsWarnEnabled={2}\nIsErrorEnabled={3}\nIsFatalEnabled={4}", log.IsInfoEnabled, log.IsDebugEnabled, log.IsWarnEnabled, log.IsErrorEnabled,log.IsFatalEnabled); if (log.IsInfoEnabled) { log.Info("info test"); } if (log.IsDebugEnabled) { log.Debug("Debug test"); } if (log.IsWarnEnabled) { log.Warn("Warn test"); } if (log.IsErrorEnabled) { log.Error("Error test"); } if (log.IsFatalEnabled) { log.Fatal("Fatal test"); } Console.ReadKey(); } } }
运行后,将在程序同级目录下,自动创建log目录,并生成类似20110417.txt的日志文件,内容类似下面这样:
2011-04-17 20:41:25,347 [6948] WARN jimmy.logger [(null)] - Warn test
2011-04-17 20:41:25,463 [6948] ERROR jimmy.logger [(null)] - Error test
2011-04-17 20:41:25,465 [6948] FATAL jimmy.logger [(null)] - Fatal test
2011-04-17 20:41:25,463 [6948] ERROR jimmy.logger [(null)] - Error test
2011-04-17 20:41:25,465 [6948] FATAL jimmy.logger [(null)] - Fatal test
注:因为config的log4net节点配置了日志级别为WARN,所以低于WARN级别的DEBUG,INFO信息并没有记录在日志中。