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="[开始] "/>

<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="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="[开始] "/>

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

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

  1. spark读取外部配置文件的方法

    spark读取外部配置文件的方法 spark-submit  --files /tmp/fileName /tmp/test.jar 使用spark提交时使用--files参数,spark会将将本地的 ...

  2. 19、属性赋值-@PropertySource加载外部配置文件

    19.属性赋值-@PropertySource加载外部配置文件 加载外部配置文件的注解 19.1 [xml] 在原先的xml 中需要 导入context:property-placeholder 声明 ...

  3. SpringBoot常用配置,引入外部配置文件信息,热加载

    SpringBoot的配置文件格式 yml规范 SpringBoot的配置文件支持properties和yml,甚至还支持json. 更推荐使用yml文件格式: yml文件,会根据换行和缩进帮助咱们管 ...

  4. springboot加载外部配置文件

    网上搜集和整理如下(自己已验证过) 1. war包在tomcat中加载外部配置文件 war包运行在独立tomcat下时,如何加载war包外部配置application.properties,以达到每次 ...

  5. 通过外部配置文件做mybatis的基础配置,以及Mapper代理接口的实现

    1.通过外部配置文件做mybatis的基础性的配置. 1)先编写config.properties的文件(做一些动态的配置). 配置的内容如下: jdbc.jdbcUrl=jdbc:oracle:th ...

  6. 为什么要采用外部js文件

    这篇文章主要讲的是为什么要采用外部js文件,有什么好处. 为什么不把js内嵌在html中呢,这样不是好分析吗?对,这样你是好分析,同样的别人呢?不内嵌在html中有如下原因:   安全性: 只要查看页 ...

  7. Spring配置文件中如何使用外部配置文件配置数据库连接

    直接在spring的配置文件中applicationContext.xml文件中配置数据库连接也可以,但是有个问题,需要在url后带着使用编码集和指定编码集,出现了如下问题,&这个符号报错-- ...

  8. application.properties多环境配置文件、jar包外部配置文件、配置项加密、程序中配置使用

    一.简介 spring boot项目application.properties文件存放及使用介绍 二.方法一多环境配置文件 我们一般都会有多个应用环境,开发环境.测试环境.生产环境,各个环境的配置会 ...

  9. jar包读取jar包内部和外部的配置文件,springboot读取外部配置文件的方法

    jar包读取jar包内部和外部的配置文件,springboot读取外部配置文件的方法 用系统属性System.getProperty("user.dir")获得执行命令的目录(网上 ...

随机推荐

  1. Logback 日志策略配置

    [参考文章]:官方文档:Logback configuration [参考文章]:logback的使用和logback.xml详解 [参考文章]:Logback源码赏析-日志按时间滚动(切割) 1. ...

  2. 安装VMware虚拟机和centos操作系统

    1,安装包:百度网盘: 2,安装教程:https://blog.csdn.net/qq_31362105/article/details/80706096  配置好操作系统,内存,网络等: 3,Cen ...

  3. QThread 线程暂停 停止功能的实现

    为了实现Qt中线程的暂停运行,和停止运行的控制功能 需要在设置两个static型控制变量. //终止原始数据单元进队出队,并清空数据. static bool stopSign; //原始数据单元队列 ...

  4. /proc/sys/net/ipv4/ip_conntrack_max

    Things to know (best practices and “issues”) READ IT !!! — uWSGI 2.0 documentationhttps://uwsgi-docs ...

  5. css3实现jQuery的slideUp和slideDown效果

    最近打算做一些交互优化方面的轮子.虽然轮子别人都弄过,但是自己没弄过.重复造轮子对知识理解还是有好处的.本次轮子如题目.直接代码. <!DOCTYPE html> <html lan ...

  6. List的remove方法里的坑

    今天遇到一件怪事,用一个ArrayList添加了一个对象,再调用ArrayList的remove方法删除该对象,当然这时对象是数据库里查出来的,但内容绝对是一样,却发现remove失败了.演示一下,这 ...

  7. BSD process name correspondlng to current thread: knernel_task Mac OS version Not yet set

    网上查了一大堆,没有一个靠谱的, 百度,以说黑苹果装系统最容易出现这个,这个让我开始怀疑公司给我们的所谓外观的iMac是黑苹果了,因为一直很卡,比上家公司的真黑苹果还卡. 谷歌,有说重置BIOS电池的 ...

  8. wp-query调用前几篇文章的方法

    ---恢复内容开始--- 利用强大的wp-query函数调用指定分类下的前几篇文章,下面的代码表示调用的是分类ID4下的前两篇文章. <?php $cunt_wenzhen = array('c ...

  9. Sprint Retrospective - 回顾的重要性

    在Scrum中,每个Sprint结束的时候会有两个会议(Sprint Review/Demo和Sprint Retrospective回顾).这两个会议是对过去的一个Sprint的一个总结,其中Rev ...

  10. MySQL创建用户、授权、删除

    1.在MySQL中创建新用户 使用具有shell访问权限的root用户登录MySQL服务器并创建名为“rahul”的新用户.下面的命令只允许从localhost系统访问用户rahul的MySQL服务器 ...