Ref: http://www.cnblogs.com/wangsaiming/archive/2013/01/11/2856253.html
http://www.cnblogs.com/zhoufoxcn/archive/2010/11/23/2515616.html
一. log4net程序集下载
下载地址:http://logging.apache.org/log4net/download_log4net.cgi
(选择具体版本,最新版为1.2.15 log4net-1.2.15-bin-newkey.zip)
将对应dll添加到项目引用中。
具体操作参见 http://www.cnblogs.com/wangsaiming/archive/2013/01/11/2856253.html
二. 配置log4net
如果还没有添加应用程序配置文件,则项目中添加app.config配置文件
配置内容及说明如下:
<?xml version="1.0"?> <configuration> <configSections> <!--type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"--> <section name="log4net" type="System.Configuration.IgnoreSectionHandler"/> </configSections> <appSettings>
<!-- ...............--> </appSettings> <!--Log4net 日志配置--> <log4net> <!--运行日志输出到文件中(回滚记录多文件中)--> <appender name="LogFileAppender1" type="log4net.Appender.RollingFileAppender"> <!--定义文件存放位置,默认与程序同目录里--> <file value="logs\"/> <appendToFile value="true"/> <rollingStyle value="Date"/> <datePattern value="'Log1'_yyyyMMdd'.log'"/> <staticLogFileName value="false"/> <!--一个时间保留日志的数量--> <param name="MaxSizeRollBackups" value="10"/> <param name="maximumFileSize" value="10MB"/> <layout type="log4net.Layout.PatternLayout"> <!--每条日志末尾的文字说明--> <!--输出格式--> <!--样例:2016-01-01 13:42:32 ,222 [filename;line] INFO Log4NetDemo.MainClass [(null)] - info--> <!--conversionPattern value="%date [%file:%line] [%-5level] %logger[%property{NDC}] - %message%newline "--> <conversionPattern value="%date{yyyy-MM-dd HH:mm:ss,fff} [%file:%line] [%-5level] - %message%newline "/> </layout> <!--记录INFO-FATAL级别信息--> <filter type="log4net.Filter.LevelRangeFilter"> <levelMin value="INFO" /> <levelMax value="FATAL" /> </filter> </appender> <!--统计日志输出到文件中--> <appender name="LogFileAppender2" type="log4net.Appender.RollingFileAppender"> <!--定义文件存放位置--> <file value="logs\"/> <appendToFile value="true"/>
<lockingModel value="log4net.Appender.FileAppemder.MinimalLock"/> <!--多个线程访问时最小锁实现--> <rollingStyle value="Date"/> <datePattern value="'Log2'_yyyyMMdd'.log'"/> <staticLogFileName value="false"/> <!--一个时间保留日志的数量--> <param name="MaxSizeRollBackups" value="10"/> <param name="maximumFileSize" value="10MB"/> <layout type="log4net.Layout.PatternLayout"> <!--每条日志末尾的文字说明--> <!--输出格式--> <!--样例:2016-01-01 13:42:32 [filename;line] INFO Log4NetDemo.MainClass [(null)] - info--> <conversionPattern value="%newline %date [%file:%line] [%-5level] %logger[%property{NDC}] - %message"/> </layout> <!--记录INFO-FATAL级别信息--> <filter type="log4net.Filter.LevelRangeFilter"> <levelMin value="INFO" /> <levelMax value="FATAL" /> </filter> </appender>
<!-- 默认采用root的话,则所有logger会同时写到对应文件中 <root> <level value="ALL"/> <appender-ref ref="LogFileAppender1"/> <appender-ref ref="LogFileAppender2"/> </root> --> <logger name="Log1"> <level value="ALL"/> <appender-ref ref="LogFileAppender1"/> </logger> <logger name="Log2"> <level value="ALL"/> <appender-ref ref="LogFileAppender2"/> </logger> </log4net> <startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/></startup></configuration>
Level级别:DEBUG <INFO<WARN<ERROR<FATAL
有关级别说明参考 http://blog.csdn.net/milk1626/article/details/5761738
有关写到文件还是数据库等及相关参数说明参考 http://www.cnblogs.com/zhoufoxcn/archive/2010/11/23/2515616.html
三. 实际使用
注意: 在AssemblyInfo.cs文件中加入[assembly: log4net.Config.XmlConfigurator(Watch = true)] 解析相关配置文件class LoggerHelper
{
//如果只是用root做默认处理的话,可以使用如下logger //private static ILog Logger = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
//log1 写入对应文件 private static ILog Logger1 = log4net.LogManager.GetLogger("Log1");
//log2 写入对应文件 private static ILog Logger2 = log4net.LogManager.GetLogger("Log2"); public static void Log1Info(string message) { Logger1.Info(message); } public static void Log2Info(string message) { Logger2.Info(message); }
}
在其他程序中要写日志到哪个文件中可以调用相应函数