log4net为什么会打印两次?
用“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节需要这样修改:
<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为什么会打印两次?的更多相关文章
- SHELL打印两个日期之间的日期
		
SHELL打印两个日期之间的日期 [root@umout shell]# cat date_to_date.sh THIS_PATH=$(cd `dirname $0`;) cd $THIS_PATH ...
 - Python为什么会打印两个\
		
在Python里面,如果\后面不是一个合法的转移字符,那么,Python会打印两个\,换句话说,Python将\也当成普通字符看待,而不是转义符的标志: >>>S = 'C:\py\ ...
 - pandas:解决groupby().apply()方法打印两次
		
对于以下dataframe执行dataframe.groupby(['name', 'course']).apply(lambda x: test(x)) 操作 其中test(x)函数为: def t ...
 - JS局部打印两种方法
		
所有浏览器都可以 <html> <head title=""> <title>测试打印</title> <style medi ...
 - 为什么PHP(CLI)同一个错误信息会打印两次?
		
第一个信息是display_errors输出的,在fpm环境下输出到浏览器那里,而在CLI环境下会打印到屏幕上. display_errors = On 第二个信息是log_errors输出的. lo ...
 - LinkedList_1.打印两个有序链表的公共部分
		
思路: 实例化出两个链表($link_a, $link_b),比较连个链表当前元素的大小,谁小谁执行next()方法继续比较,当出现相当的时候把相等的值塞入数组$common里,当两个链表有一个元素比 ...
 - Springboot集成logback,控制台日志打印两次,并且是不同的线程打印的
		
背景 在搭建一个新项目的时候,从公司别的项目搞了个logback-spring.xml的配置过来,修改一下启动项目的时候发现 所有的日志都输出了两次 并且来自于不同的线程,猜测是配置重复了,但是仔细检 ...
 - Java交替打印两个字符串
		
一.使用volatile关键字 public class Main { volatile int x = 0; Main() { new Thread(() -> { while (x < ...
 - 打印两个有序链表的公共部分 【题目】 给定两个有序链表的头指针head1和head2,打印两个 链表的公共部分
		
简单题 package my_basic.class_3; public class Code_10_PrintCommonPart { public static class Node{ int v ...
 
随机推荐
- Python入妖4-----Request库的基本使用
			
什么是Requests Requests是用python语言基于urllib编写的,采用的是Apache2 Licensed开源协议的HTTP库如果你看过上篇文章关于urllib库的使用,你会发现,其 ...
 - java——int、args[]传参、标签、数字塔?、一个输入格式
			
1.当int型整数超出自己范围时,会从它的上界重新开始. public class exp { public static void main(String[] args) { int i = 214 ...
 - ES6数组新增方法总结
			
关于数组中forEach() .map().filter().reduce().some().every()的总结 let arr = [1, 2, 3, 4, 5] // forEach遍历数组 a ...
 - vue快速入门(二)
			
工程搭建完成,接下来如何使用. 首先找到src\rooter\index.js文件 这里是路由文件配置要访问的组件,这个会在后期说明 这里的components/A 是组件里边的 需要手动 创建A.v ...
 - Head First 设计模式笔记(适配器)
			
1.定义: 将一个类的接口转换成客户期望的另外一个接口.适配器让原来不兼容的类可以合作无间. 例子:插座转接头. 2.类图: 3.说明: 埋坑 4.例子 埋坑
 - MQTT学习之一
			
一MQTT特性: 基于C/S,发布订阅(发布者服务器->云平台代理->订阅客户端)一对多结构,适用于低带宽高延时,基于TCP/IP之上.
 - Unity Collab
			
window-services下面打开面板,这里有开关(或者你也可以进入后台项目管理页面删除项目). 最大的圈是项目名称. 然后就打开了下面页面,关上就可以了.
 - asp.net 单元测试(转)
			
最早接触单元测试是看了极限编程相关资料里边讲的测试驱动开发,然后下载了Nunit研究了一下,但并没产生多大的触动,因为那个时候做的都是些时间紧任务重的事情,对于单元测试的直接感觉就是有可能比较费时间. ...
 - promise之nodejsQ的详细用法总结
			
这里主要讲node.js中Q的各种用法及说明总结,不详细介绍promise及原理.关于promise介绍可以查看我的另一篇文章: https://www.cnblogs.com/yzeng/p/976 ...
 - GitHub安装缓慢甚至下载失败的解决办法
			
1.打开控制面板→ Internet 选项→“安全”选项卡. 2.选择“受信任的站点”→点击“站点”按钮. 3.弹出的窗口中的文本框中输入点击“添加” https://github-windows.s ...