Log4net采用外部配置文件和多记录器的方法
1) 创建配置文件,可以放在任意位置,名字可以任意的xml文件 例如,文件名 Log.Config.xml,内容如下 <?xml version="1.0" encoding="utf-8"?> ? <log4net name="DefaultLogger"> ??? <root> ????? <level value="ALL"/> ??? </root> ? ??? <logger name="Doraemon.Hardware"> ????? <appender-ref ref="HardwareLogger"/> ??? </logger> ? ??? <logger name="Doraemon.Software"> ????? <appender-ref ref="UILogger"/> ??? </logger> ? ??? <!--硬件日志--> ??? <appender name="HardwareLogger" type="log4net.Appender.RollingFileAppender"> ????? <param name="File" value="LogHardware" /> ????? <param name="AppendToFile" value="true" /> ? ????? <param name="rollingStyle" value="Date" /> ????? <param name="datePattern" value="yyyy-MM-dd_‘Log.txt‘" /> ????? <param name="staticLogFileName" value="false"/> ????? <param name="ImmediateFlush" value="true" /> ????? <!-- 增加这个,可以立即写日志,好像不起作用 --> ?
????? <layout type="log4net.Layout.PatternLayout"> ??????? <param name="Header" value="[开始] "/> ??????? <param name="Footer" value="[结尾] "/> ?????????????????? <!-- ??????? <param name="ConversionPattern"? value="%d %-5p - %m%n" /> ?????????????????? <param name="ConversionPattern"? value="%d [%t] %-5p %c [%x] - %m%n" /> ?????????????????? <param name="ConversionPattern"? value="%d{HH:mm:ss,fff} [%t] %-5p %c [%x] - %m%n" /> ?????????????????? --> ?????????????????? ?????????????????? <param name="ConversionPattern"? value="%d{HH:mm:ss,fff} %-5p - %m%n" /> ????? </layout> ????? <lockingModel type="log4net.Appender.FileAppender+MinimalLock" /> ????? <!--使用最小锁定模型(minimal locking model),以允许多个进程可以写入同一个文件。 --> ????? <filter type="log4net.Filter.LevelRangeFilter"> ? ??????<param name="LevelMin" value="DEBUG" /> ??????? <param name="LevelMax" value="FATAL" /> ??????? <!-- WARN? ERROR--> ????? </filter> ??? </appender> ? ??? <!--UI & Workflow日志--> ??? <appender name="UILogger" type="log4net.Appender.RollingFileAppender"> ?????? <param name="File" value="LogSoftware" /> ????? <param name="AppendToFile" value="true" /> ? ????? <param name="rollingStyle" value="Date" /> ????? <param name="datePattern" value="yyyy-MM-dd_‘Log.txt‘" /> ????? <param name="staticLogFileName" value="false"/> ????? <param name="ImmediateFlush" value="true" /> ????? <!-- 增加这个,可以立即写日志,好像不起作用 --> ? ????? <layout type="log4net.Layout.PatternLayout"> ??????? <param name="Header" value="[开始] "/> ??????? <param name="Footer" value="[结尾] "/> ??????? ?????????????????? <param name="ConversionPattern"? value="%d{HH:mm:ss,fff} %-5p - %m%n" /> ????? </layout> ????? <lockingModel type="log4net.Appender.FileAppender+MinimalLock" /> ????? <!--使用最小锁定模型(minimal locking model),以允许多个进程可以写入同一个文件。 --> ????? <filter type="log4net.Filter.LevelRangeFilter"> ??????? <param name="LevelMin" value="DEBUG" /> ??????? <param name="LevelMax" value="FATAL" /> ??????? <!-- WARN? ERROR--> ????? </filter> ??? </appender> ? </log4net> ? 2)?????? 程序入口,增加 Log4net 配置入口 ??????? /// 应用程序的主入口点。 ??????? /// </summary> ??????? /// ??????? [STAThread] ??????? static void Main() ??????? { ??????????? Application.EnableVisualStyles(); ??????????? Application.SetCompatibleTextRenderingDefault(false); ??????????? ??????????? //log4net.Config.XmlConfigurator.Configure( ); //为LOG4NET增加的,这个是 配置文件放在 app.config.xml的方式 ??????????? System.IO.FileInfo fi = new System.IO.FileInfo(@"C:UsersJamessourcereposWindowsFormsApp_log4net_多个_外部配置binDebugLog.Config.xml"); ??????????? log4net.Config.XmlConfigurator.Configure(fi); ? ??????????? //或者 ??????????? //XmlConfigurator.Configure(new System.IO.FileInfo(@"C:UsersJamessourcereposWindowsFormsApp_log4net_多个_外部配置binDebugLog.Config.xml");); ?????? Application.Run(new Form1());
? ? ? 3)?????? 增加静态的记录器 ?? ? ? ? private static readonly ILog log = LogManager.GetLogger(@"Doraemon.Hardware");//@"Doraemon.UI"); begins by importing log4net related classes. ??????? private static readonly ILog log2 = LogManager.GetLogger(@"Doraemon.Software");//@"Doraemon.UI"); begins by importing log4net related classes. ? ? 4)?????? 开始使用 ?log.Error("Log1"); log2.Error("log2"); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |