当前位置:首页 > 编程笔记 > 正文
已解决

.Net 6 Nacos日志控制台疯狂发输出+Log4Net日志过滤

来自网友在路上 167867提问 提问时间:2023-11-10 12:08:14阅读次数: 67

最佳答案 问答题库678位专家为你答疑解惑

我们的项目配置了Log4Net 作为日志输出工具,在引入Nacos后,控制台和日志里疯狂输出nacos心跳日志和其他相关信息,导致自己记录的信息被淹没了,找了很多解决办法:

1、提高nacos日志级别,然后再屏蔽相应级别的日志:在我没有找到怎么修改nacos日志级别的方法,希望路过的大佬能指点一下。

2、继续百度,想在log4Net.Config里添加配置,进行过滤:在config文件中加了如下配置,不知道是我配置写的有问题,还是其原因,并没有起作用:

<appender name="TraceLogAppender" type="log4net.Appender.RollingFileAppender"><param name="File" value=".\\logs\\" /><param name="AppendToFile" value="true" /><lockingModel type="log4net.Appender.FileAppender+MinimalLock" /><param name="MaxSizeRollBackups" value="100" /><param name="MaximumFileSize" value="5000KB" /><param name="StaticLogFileName" value="false" /><param name="DatePattern" value="yyyyMMdd&quot;-Info.txt&quot;" /><param name="CountDirection" value="1" /><param name="RollingStyle" value="Composite" /><filter type="log4net.Filter.LevelRangeFilter"><levelMin value="INFO" /><levelMax value="INFO" /></filter><filter type="log4net.Filter.StringMatchFilter"><param name="StringToMatch" value="System.Net.Http.HttpClient.NacosClient.*" /><param name="StringToMatch" value="Chitic.Module.Nacos.*" /></filter><!--<layout type="log4net.Layout.PatternLayout"><param name="ConversionPattern" value="%d [%t] %-5p %c [%x]  - %m%n %n %n" /></layout>--></appender>

3、最后,突然想到在添加日志时加过滤选项:在program.cs 中修改日志的配置,添加过滤项config.AddFilter(),上代码


//注入日志
builder.Services.AddLogging(config =>
{config.AddLog4Net();
//添加如下信息,强制过滤Nacos相关日志config.AddFilter((ms,filter) =>{//return true;if (ms.Contains("Nacos") || filter == LogLevel.Trace /*|| filter == LogLevel.Information */)return false;elsereturn true;});
});

虽然这个方法有些暴力,但是完美的解决了我的问题,在此记录一些,有同样困扰的码友,希望本文能提供帮助或思路。

查看全文

99%的人还看了

猜你感兴趣

版权申明

本文".Net 6 Nacos日志控制台疯狂发输出+Log4Net日志过滤":http://eshow365.cn/6-37225-0.html 内容来自互联网,请自行判断内容的正确性。如有侵权请联系我们,立即删除!