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

我们的项目配置了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;
        else
            return true;
    });
});

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

相关推荐
凯丨6 小时前
AI 蠕虫来了:恶意文档如何通过 Copilot for Word 自我传播?
人工智能·c#·copilot
Aaron - Wistron6 小时前
Web API C# (Furion版)带 单元测试
开发语言·后端·c#
骊城英雄8 小时前
基于C#+avalonia ui实现的跨平台点胶机灌胶监控控制上位机软件
开发语言·ui·c#
吾儿良辰8 小时前
一个被BCL遗忘的高性能集合:C# CircularBuffer<T>深度解析
开发语言·windows·c#
哎呦喂我去去去8 小时前
C#实现屏幕墙:同时监控多个电脑桌面(支持Windows、信创Linux、银河麒麟、统信UOS)
linux·windows·c#
caishenzhibiao10 小时前
期货先行者主图 同花顺期货通指标
java·c语言·c#
库拉库拉里10 小时前
Word文档的标题总是自动出现首行缩进怎么办?
c#·word·xhtml
在世修行10 小时前
从零打造 C# 工业视觉检测系统(一):项目全景与架构设计
c#·视觉检测
牡丹雅忻111 小时前
AES 加密模式演进:从 ECB、CBC 到 GCM 的 C# 深度实践
java·开发语言·c#
脚踏实地皮皮晨12 小时前
002002002_DepandencyObject类2
开发语言·windows·算法·c#·visual studio