加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

Log4net采用外部配置文件和多记录器的方法

发布时间:2020-12-13 22:39:54 所属栏目:Linux 来源:网络整理
导读:1) 创建配置文件,可以放在任意位置,名字可以任意的xml文件 例如,文件名 Log.Config.xml,内容如下 ?xml version="1.0" encoding="utf-8"? ? log4net name="DefaultLogger" ??? root ????? level value="ALL"/ ??? /root ? ??? logger name="Doraemon.Hardware

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="[开始]&#13;&#10;"/>

??????? <param name="Footer" value="[结尾]&#13;&#10;"/>

?????????????????? <!--

??????? <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="[开始]&#13;&#10;"/>

??????? <param name="Footer" value="[结尾]&#13;&#10;"/>

???????

?????????????????? <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());

与配置文件的

LogerName 关联

?

?

?

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");

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读