用“log4net 使用”做关键字在bing上搜索,点开排序第一的链接:http://33liuhongwei33.blog.163.com/blog/static/39923778201156101213418/

试用之后可以打印log,但是会打印两次

再用“log4net log twice”做关键字在bing上搜索,同样点开排序第一的链接:http://stackoverflow.com/questions/651277/eliminate-duplicate-logging-in-log4net

找到了问题的根源,关键在这句话:

“You don't need to indicate the appender-ref in the logger myprogram since it will inherit them from the root logger; if you specify them again it will log twice.”

原来自定义的logger设置会从root logger继承下来(我承认我没有仔细读log4net的文档,不过90%以上的人也不会去仔细从头到尾的读文档,总有些东西是能用就行的,人没有精力也没有时间把每件事都研究到最细处,

但是人又需要把某件事研究到最细处,所谓一招鲜吃遍天是也。)

所以上面的文章中的logger节需要这样修改:

  1. <root>
    <level value="INFO"></level>
    <appender-ref ref="FileAppender"></appender-ref>
    <appender-ref ref="ConsoleAppender"></appender-ref>
    </root>
    <logger name="MyLogger">
    <level value="ERROR"></level>
    </logger>

log4net为什么会打印两次?的更多相关文章

  1. SHELL打印两个日期之间的日期

    SHELL打印两个日期之间的日期 [root@umout shell]# cat date_to_date.sh THIS_PATH=$(cd `dirname $0`;) cd $THIS_PATH ...

  2. Python为什么会打印两个\

    在Python里面,如果\后面不是一个合法的转移字符,那么,Python会打印两个\,换句话说,Python将\也当成普通字符看待,而不是转义符的标志: >>>S = 'C:\py\ ...

  3. pandas:解决groupby().apply()方法打印两次

    对于以下dataframe执行dataframe.groupby(['name', 'course']).apply(lambda x: test(x)) 操作 其中test(x)函数为: def t ...

  4. JS局部打印两种方法

    所有浏览器都可以 <html> <head title=""> <title>测试打印</title> <style medi ...

  5. 为什么PHP(CLI)同一个错误信息会打印两次?

    第一个信息是display_errors输出的,在fpm环境下输出到浏览器那里,而在CLI环境下会打印到屏幕上. display_errors = On 第二个信息是log_errors输出的. lo ...

  6. LinkedList_1.打印两个有序链表的公共部分

    思路: 实例化出两个链表($link_a, $link_b),比较连个链表当前元素的大小,谁小谁执行next()方法继续比较,当出现相当的时候把相等的值塞入数组$common里,当两个链表有一个元素比 ...

  7. Springboot集成logback,控制台日志打印两次,并且是不同的线程打印的

    背景 在搭建一个新项目的时候,从公司别的项目搞了个logback-spring.xml的配置过来,修改一下启动项目的时候发现 所有的日志都输出了两次 并且来自于不同的线程,猜测是配置重复了,但是仔细检 ...

  8. Java交替打印两个字符串

    一.使用volatile关键字 public class Main { volatile int x = 0; Main() { new Thread(() -> { while (x < ...

  9. 打印两个有序链表的公共部分 【题目】 给定两个有序链表的头指针head1和head2,打印两个 链表的公共部分

    简单题 package my_basic.class_3; public class Code_10_PrintCommonPart { public static class Node{ int v ...

随机推荐

  1. Error: Duplicate key name 'PCS_STATS_IDX' (state=42000,code=1061) ----Hive schematool -initSchema -dbType mysql

    schematool -initSchema -dbType mysqlMetastore connection URL: jdbc:mysql://localhost/metastore_db?cr ...

  2. telnet不能用,提示:-bash: telnet: command not found

    1.[root@localhost ~]# telnet  bash: telnet: command not found 2. 查询了是否安装Telnet包,结果如下: [root@localhos ...

  3. 查看服务器配置信息prtdiag与systeminfo实用命令

    UNIX(SUN服务器)bash-2.05# prtdiag -v系统配置:  Sun Microsystems  sun4u Sun Fire V890系统时钟频率:150 MHz内存大小:3276 ...

  4. Qt 学习(4)

    Qt UI 文件机制 使用 Qt 设计界面程序时,若界面是静态的,可以借助 Qt Designer 进行所见即所得的界面设计.设计好界面后,在界面类中对 ui 对象进行操作非常方便. QtCreato ...

  5. Day4下午

    不会啊. T1 找规律: 辗转相减,加速. #include<iostream> #include<cstring> #include<cstdio> #inclu ...

  6. supermarket SSM

    1.数据库 2.整体空架构(jar包) 3.工程依赖 24节点 build节点 <properties> </project.build.sourceEncoding> < ...

  7. 一、简单gridview列表展示

    1.HomeController public ActionResult Index() { //返回绑定models的index.cshtml return View(NorthwindDataPr ...

  8. DNN学习笔记 最简单的皮肤制作

    说明: 在学习DNN时,使用的版本为 DNN8.参考资料:http://www.dnnsoftware.com/docs/designers/creating-themes/index.html 制作 ...

  9. 使用java的 htpUrlConnection post请求 下载pdf文件,然后输出到页面进行预览和下载

    使用java的 htpUrlConnection post请求 下载pdf文件,然后输出到页面进行预览和下载 2018年06月07日 10:42:26 守望dfdfdf 阅读数:235 标签: jav ...

  10. linux常用安装命令(ubuntu)

    安装 net-tools 安装命令 sudo apt install net-tools 安装ssh sudo apt-get install openssh-server 查看是否安装成功 sudo ...