【9】log4net 实例
一.创建项目并添加nuget:
Install-Package log4net
二.添加配置文件
<configuration> <configSections> <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" /> </configSections> <log4net> <appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender"> <!--日志文件名开头--> <file value="D:\Log\log_"/> <!--多线程时采用最小锁定--> <lockingModel type="log4net.Appender.FileAppender+MinimalLock"/> <!--日期的格式,每天换一个文件记录,如不设置则永远只记录一天的日志,需设置--> <datePattern value="yyyyMMdd_HH".log""/> <!--是否追加到文件,默认为true,通常无需设置--> <appendToFile value="true"/> <!--按照何种方式产生多个日志文件(日期[Date],文件大小[Size],混合[Composite])--> <RollingStyle value="Composite"/> <!--每天记录的日志文件个数,与maximumFileSize配合使用--> <MaxSizeRollBackups value="100"/> <!--每个日志文件的最大大小--> <!--可用的单位:KB|MB|GB--> <!--不要使用小数,否则会一直写入当前日志--> <maximumFileSize value="2MB"/> <!--是否只写到一个文件中--> <staticLogFileName value="false" /> <!--日志格式--> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%date [%t]%-5p %c - %m%n"/> </layout> </appender> <appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender"> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%date [%t]%-5p %c - %m%n" /> </layout> </appender> <root> <!--控制级别,由低到高: ALL|DEBUG|INFO|WARN|ERROR|FATAL|OFF--> <!--比如定义级别为INFO,则INFO级别向下的级别,比如DEBUG日志将不会被记录--> <!--如果没有定义LEVEL的值,则缺省为DEBUG--> <level value="ALL"/> <appender-ref ref="RollingFileAppender"/> <appender-ref ref="ConsoleAppender"/> </root> </log4net> </configuration>
注:若要appender生效,需要在root节点中添加appender-ref。
此例中
RollingFileAppender为将日志以回滚文件的形式写到文件中
ConsoleAppender为将日志输出到控制台
三.main函数添加代码
static void Main(string[] args) { log4net.Config.XmlConfigurator.Configure(); ILog logger = LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); logger.Info("记录日志"); Console.ReadLine(); }
如果不加log4net.Config.XmlConfigurator.Configure();也可在AssemblyInfo.cs文件中添加
[assembly: log4net.Config.XmlConfigurator(ConfigFile = "App.config", Watch = true)]
这里需要将App.config文件属性设置问始终复制
四.结果
控制台输出:
文本文件记录日志:
参考资料:
http://blog.csdn.net/pfe_nova/article/details/12225349
http://www.cnblogs.com/zhangchenliang/p/4546352.html