NetCore log4net 集成以及配置日志信息不重复显示或者记录
NetCore log4net 集成,这是一个很常见而且网上大批大批的博文了,我写这个博文主要是为了记录我在使用过程中的一点小收获,以前在使用的过程中一直没有注意但是其实网上说的不清不楚的问题。
官方文档的链接:http://logging.apache.org/log4net/release/manual/configuration.html
<log4net>
<!-- A1 is set to be a ConsoleAppender -->
<appender name="A1" type="log4net.Appender.ConsoleAppender"> <!-- A1 uses PatternLayout -->
<layout type="log4net.Layout.PatternLayout">
<!-- Print the date in ISO 8601 format -->
<conversionPattern value="%date [%thread] %-5level %logger %ndc - %message%newline" />
</layout>
</appender>
<appender name="FileAppender" type="log4net.Appender.FileAppender">
<file value="log-file.log" />
<appendToFile value="true" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
</layout>
</appender>
<!-- Set root logger level to DEBUG and its only appender to A1 -->
<logger name="WYCms.Api">
<level value="info" />
<appender-ref ref="ManagedColoredConsoleAppender" />
</logger> <logger name="WYCms.Api.Controller" additivity="false">
<level value="Error" />
<appender-ref ref="ManagedColoredConsoleAppender" />
</logger>
</logger>
</log4net>
相信这段配置很平常,但是我们如何实现,在项目中只不让日志重复显示信息,只显示,为此,我通读了:http://logging.apache.org/log4net/release/manual/configuration.html 这里关于log4net各个参数的说明以及示例。
1.首先理解,上面的 root 和logger,最后的效果是什么,首先,配置了root 以及 自定义的logger,那么按照官方的文档上面来说,这时候就会生成:
log-file.log 文件,以及在 控制台下面按色彩打印出相关lever级别的信息,通过验证发现,确实如此.

2 理解logger段的配置, <logger name="WYCms"> 这里的name代表我们项目的一个命名空间,注意,这里是项目的命名空间的名称,度娘上各种千奇百怪的东西,如果照抄,你可能可以得到日志,但是你永远得不到你想到或者只需要的日志,而且logger的配置是继承自root的配置信息的,这就是为什么会有重复的日志产生的原因。
我分别写在这样的代码:


现在我们来看上面的配置信息:
root 日志级别配置的为:ALL
logger name="WYCms.Api" 日志级别配置为:info
logger name="WYCms.Api.Controller" additivity="false" 日志级别为:error 并且 additivity配置为false,阻止向父级继承,也就是说,在命名空间WYCms.Api.Controller下写的日志信息,只会保留error级别的日志信息,不会同步记录到 logger name="WYCms.Api"以及root中,而由于 logger name="WYCms.Api"没有阻止继承,那么,在命名空间"WYCms.Api"产生的日志信息,也会同步记录到root配置的日志信息中。我们来测试一下,是否正确,如下图:

与我们预料中的一样,再来测试,在controller级别的日志信息是否只显示error级别的信息,并且不会记录到其父级中去。

与我们期望的一模一样,至此,日志记录配置完毕,注意以上的问题,你就可以随心配置以及记录各种各样的日志文件了,其它的依此类推
NetCore log4net 集成以及配置日志信息不重复显示或者记录的更多相关文章
- mybatis 配置的log4j文件无效,不能正常显示日志信息
正在学习mybatis,配置好后log4j.properties文件后,日志信息不能正常显示,没有效果. 查看了一下mybatis的相关文档,在日志一栏找到问题愿意 原因是我们的mybatis选了其他 ...
- Net Core集成Exceptionless分布式日志功能以及全局异常过滤
Net Core集成Exceptionless分布式日志功能以及全局异常过滤 相信很多朋友都看过我的上篇关于Exceptionless的简单入门教程[asp.Net Core免费开源分布式异常日志收集 ...
- log4j 日志信息的引入(通用版)——解决项目运行过程中的日志信息
定义 log4j是Apache的一个开放源代码项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台.文件.GUI组件,甚至是套接口服务器.NT的事件记录器.UNIX Syslog守护进程 ...
- DEBUG模式下屏蔽某些烦人的动态日志信息
以上就是控制台循环打印的日志信息,总是会刷屏干扰到那些有用的日志信息,所以要把它们屏蔽掉,虽然如果将log级别调成info级别可以不显示了,但是那样的话,别的有用的日志信息就无法显示了. 要有针对性的 ...
- log4j 配置日志输出(log4j.properties)
轉: https://blog.csdn.net/qq_29166327/article/details/80467593 一.入门log4j实例 1.1 下载解压log4j.jar(地址:http: ...
- python配置日志的几种方式
使用的是logging模块,关于logging模块内容,可以看我的另一篇博客:https://www.cnblogs.com/kuxingseng95/p/9464347.html 作为开发者,我们一 ...
- 如何利用log4Net自定义属性配置功能记录完整的日志信息
log4Net作为专业的log记录控件,对于它的强大功能大家一定不陌生.下面我将详细介绍如何利用其自定义属性,让日志信息更完整. 一,创建测试工程,log4Net组件可以自己从网上下载,也可通过Nug ...
- log4Net不能成功生成日志问题(关于配置错误)
log4Net不能成功生成日志问题(关于配置错误) 调试发现问题原因在于 Log4Net IsInfoEnabled 一直为 false,返回的对象中所有 IsXXX 一直为false,这个问题的原 ...
- ASP.NET/MVC 配置log4net启用写错误日志功能
<?xml version="1.0" encoding="utf-8"?> <!-- 有关如何配置 ASP.NET 应用程序的详细信息,请访 ...
随机推荐
- 仿照everything写的一个超级速查 原创
http://files.cnblogs.com/files/jacd/%E8%B6%85%E9%80%9F%E6%9F%A5%E6%96%87%E4%BB%B6.zip 速度奇快无比,体积奇小无比, ...
- Js Date类型
一:格式化方法 var box=new Date(); //标准时间,如果没传参数,得到的时间为当前时间 //alert(Date.parse('4/12/2007')); //11763072000 ...
- ubuntu linux断点续传下载工具 uGet 的安装
网址 http://ugetdm.com/downloads-ubuntu 使用命令行安装 sudo add-apt-repository ppa:plushuang-tw/uget-stable s ...
- 随便讲讲自己了解的ajax在JQ中的应用
首先jQuery 库拥有完整的 Ajax 兼容套件.其中的函数和方法允许我们在不刷新浏览器的情况下从服务器加载数据. 定义和用法 ajax() 方法通过 HTTP 请求加载远程数据. 该方法是 jQu ...
- RPC电源监控总结
首先说一下监控机箱的监控原理. 设备的信息传输是通过tcp或者udp传输十六进制的数然后进行解析,传输数据. 如图: 设备反馈信息也是返回来的十六机制,然后按照对应的位置进将数据解析成二进制,用二进制 ...
- Java中调用MatLab返回值
当在Java中使用MatLab函数时,由于语言语法的不同,Matlab返回多个数据时,想在Java中获取到并进行使用.查阅了网上资料,翻箱倒柜加上自己实战,得出方法如下: 如MatLab函数返回的是N ...
- 关于tcp的keepalive
先记录几个要点 只能用在面向连接的tcp中,对应对端的非正常关闭有效(对端服务器重启这种,也是正常关闭,FIN RST包都算) 只要是写入到缓冲区就认为OK,所以UDP不适合,所以如果有正常的网络交互 ...
- 并查集,是否成树,Poj(1308)
思路: 对于每一条新的边的两个端点,是否是属于一颗树,要是的话,就不是一颗树.否则,就合并. 这里要注意的是,不能是森林,我这里WA了两次了.只不过在最后,查看每个节点的祖先是否是同一个就可以了. # ...
- BFS变换素数,POJ(3126)
题目链接:http://poj.org/problem?id=3126 解题报告: #include <iostream> #include <queue> #include ...
- 问题 A: xiaoping学构造函数
题目描述 xiaoping刚接触类的构造和析构函数,对于构造函数的编写比较困惑.zhuangzhuang给小平布置了一道题目,xiaoping苦思两天也无法解答,请你帮帮xiaoping吧. #inc ...