一、什么是log4net
开源日志记录组件
日志级别:Fatal(致命错误)、Error(一般错误)、Warn(警告)、Info(一般信息)、Debug(调试信息)————>日志级别由高到低
二、引用log4net.dll到项目中,配置信息如下
(1)在AssemblyInfo.cs中添加一行代码,指定log4net从配置文件中读取相关配置
//log4net日志文件 添加一行xml解析的定义 [assembly:log4net.Config.XmlConfigurator(Watch=true)]
(2)在App.config中添加对应的节点,及在App.config中添加Log4net.dll的初始化信息
<!--重点configsections必须是第一个节点1og4net配置--> <configSections> <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" /> </configSections> <log4net> <!-- name属性指定其名称,type则是log4net.Appender命名空间的一个类的名称,意思是,指定使用哪种介质--> <appender name="ErrorAppender" type="log4net.Appender.RollingFileAppender"> <!--日志文件存放的地址"D:\App_Log\servicelog\"或者工程根目录"Log\\LogInfo\\"--> <param name= "File" value= "Log\\LogInfo\\"/> <!--输出的日志不会覆盖以前的信息--> <param name= "AppendToFile" value= "true"/> <!--备份文件的个数--> <param name= "MaxSizeRollBackups" value= "10"/> <!--是否使用静态文件名--> <param name= "StaticLogFileName" value= "false"/> <!--日志文件名--> <param name= "DatePattern" value= "yyyy-MM-dd".read.log""/> <!--文件创建的方式,这里是以Date方式创建--> <param name= "RollingStyle" value= "Date"/> <!--日志格式、错误日志布局--> <layout type="log4net.Layout.PatternLayout"> <param name="ConversionPattern" value="[%date]-[%thread]-[%-p]-[%logger]-[%M] -> %message%newline" /> <!--conversionPattern: %m(message):输出的日志消息; %n(newline):换行; %L:输出语句所在的行号; %F:输出语句所在的文件名; %d(datetime):输出当前语句运行的时刻; %p(priority): 日志的当前日志级别; %t(threadid):当前语句所在的线程ID ; %c(class):当前日志对象的名称; %r(runtime):输出程序从运行到执行到当前语句时消耗的毫秒数; %-10:表示最小长度为10,如果不够,则用空格填充;--> </layout> </appender> <appender name="InfoAppender" type="log4net.Appender.RollingFileAppender"> <param name="File" value="Log\\LogInfo\\" /> <param name="AppendToFile" value="true" /> <param name="MaxFileSize" value="10240" /> <param name="MaxSizeRollBackups" value="100" /> <param name="StaticLogFileName" value="false" /> <param name="DatePattern" value="yyyyMMdd".htm"" /> <param name="RollingStyle" value="Date" /> <!--信息日志布局--> <layout type="log4net.Layout.PatternLayout"> <param name="ConversionPattern" value="<HR COLOR=blue>%n日志时间:%d [%t] <BR>%n日志级别:%-5p <BR>%n日 志 类:%c [%x] <BR>%n%m <BR>%n <HR Size=1>" /> </layout> </appender> <root> <!--控制级别,由低到高: ALL|DEBUG|INFO|WARN|ERROR|FATAL|OFF 比如定义级别为INFO,则INFO级别向下的级别,比如DEBUG日志将不会被记录 如果没有定义LEVEL的值,则缺省为DEBUG--> <level value="all" /> <appender-ref ref="ErrorAppender"/> <appender-ref ref="InfoAppender"/> </root> </log4net>
三、在程序中应用
添加引用,在类中添加实例, 运行程序测试。
//头添加log4net日志包引用 using log4net; //在类中创建logger实例 private static log4net.ILog log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);