当前位置: 移动技术网 > IT编程>开发语言>.net > Log4net采用外部配置文件和多记录器的方法

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

2019年07月12日  | 移动技术网IT编程  | 我要评论

企业价值观的作用,咸阳时代国际影城,纪英男最新消息

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="log\hardware\" />

      <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="log\software\" />

      <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:\users\james\source\repos\windowsformsapp_log4net_多个_外部配置\bin\debug\log.config.xml");

            log4net.config.xmlconfigurator.configure(fi);

 

            //或者

            //xmlconfigurator.configure(new system.io.fileinfo(@"c:\users\james\source\repos\windowsformsapp_log4net_多个_外部配置\bin\debug\log.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");

 

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网