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 应用程序的详细信息,请访 ...
随机推荐
- Mac下配置apach服务
有的时候,我们需要在内网工作组中分享一些文件或是后台接口没有及时给出,你又想要模拟真实数据,直接在项目里创建plist也可以做到这种需求,但难免让工程变得冗余且看起来比较Low.这个时候就看出配置本地 ...
- 用户管理的设计--3.jquery的ajax实现二级联动
页面效果 实现步骤 1.引入struts整合json的插件包 2.页面使用jquery的ajax调用二级联动的js //ajax的二级联动,使用选择的所属单位,查询该所属单位下对应的单位名称列表 fu ...
- 0 - python简介
Python介绍 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC语言 ...
- linux下composer+laravel随笔
1.composer中文网:https://www.phpcomposer.com/ laravel中文网:https://d.laravel-china.org/ 2.composer是的作用是 ...
- 在线文本编辑器cheditor应用实例
CKEditor 即 FCKEDITOR . FCKeditor是眼下最棒的可见就可以得网页编辑器之中的一个,它採用JavaScript编写.具备功能强大.配置easy.跨浏览器.支持多种编程语言.开 ...
- 使用Sort方法对数组进行快速排序
实现效果: 知识运用: Array类的Sort方法 public static void Sort(Array array) // array:要排序的一维Array数组 实现代码: static ...
- 字符串比较操作类StringComparer
StringComparer这个字符串比较操作类.它继承了四种接口IComparer, IEqualityComparer, IComparer<string>, IEqualityCom ...
- Python 2.x 和 3.x的区别
Python有两个版本,2.x 和 3.x ,两个版本不兼容,3.x 不不考虑对2.x代码的向后兼容. 在3.x中,一些语法,内建函数和对象的行为都有所调整. 大部分的python库都支持 pytho ...
- react手动搭建解析
1.创建项目名<react-progect> ->项目文件下创建package.json文件 ->项目下执行命令:cnpm initcnpm i webpack webpack ...
- activemq启动闪退/失败 (Illegal character in hostname at index 5: ws://****:61614?maximumConnections=1000&wireFormat.maxFrameSize=104857600)
java.net.URISyntaxException: Illegal character in hostname at index 5: ws://****:61614?maximumConnec ...