C#中增加log4net步骤

要求:日志功能:info, debug ,error 三种级别的日志均可以通过log 日志的方式查看,支持日志按天分文件保存文件夹; 添加日志自动清除策略,支持可配置,默认保留30天

第一步:在NuGet中添加log4net

工具->NuGet包管理器->管理解决方案的NuGet程序包

 

 

第二步:增加配置文件log4net.config

<?xml version="1.0" encoding="utf-8" ?>
<log4net>
	<root>
		<!--打印级别,如果要打Debug日志,请改为BEBUG-->
		<level value="INFO" />
		<appender-ref ref="ConsoleOutput" />
		<appender-ref ref="RollingFileDebug" />
		<appender-ref ref="RollingFileInfo" />
		<appender-ref ref="RollingFileError" />
	</root>
	<appender name="ConsoleOutput" type="log4net.Appender.ConsoleAppender">
		<layout type="log4net.Layout.PatternLayout">
			<conversionPattern value="[%-5level] [%date{yyyy-MM-dd HH:mm:ss.fff}] %24logger [%line] [%t] [%M] - %message%newline" />
		</layout>
		<filter type="log4net.Filter.LevelMatchFilter">
			<levelToMatch value="INFO"/>
		</filter>
		<filter type="log4net.Filter.DenyAllFilter" />
	</appender>
	<appender name="RollingFileDebug" type="log4net.Appender.RollingFileAppender">
		<file type="log4net.Util.PatternString" value="logs/debug/client_debug_log_"/>
		<appendToFile value="true"/>
		<encoding value="utf-8" />
		<maxSizeRollBackups value="30"/>
		<maximumFileSize value="10MB"/>
		<staticLogFileName value="false"/>
		<datePattern value="yyyy-MM-dd".log""/>
		<rollingStyle value="Date"/>
		<!--保证在日志分割时,新日志的序号会添加在后缀名之前-->
		<preserveLogFileNameExtension value="true"/>
		<layout type="log4net.Layout.PatternLayout">
			<conversionPattern value="[%-5level] [%date{yyyy-MM-dd HH:mm:ss.fff}] %24logger [%line] [%t] [%M] - %message%newline" />
		</layout>
		<lockingmodel type="log4net.appender.fileappender+minimallock" />
		<filter type="log4net.Filter.LevelRangeFilter">
			<levelMin value="DEBUG" />
			<levelMax value="DEBUG" />
		</filter>
	</appender>
	<appender name="RollingFileInfo" type="log4net.Appender.RollingFileAppender">
		<file type="log4net.Util.PatternString" value="logs/info/client_info_log_"/>
		<appendToFile value="true"/>
		<encoding value="utf-8" />
		<maxSizeRollBackups value="30"/>
		<maximumFileSize value="10MB"/>
		<staticLogFileName value="false"/>
		<datePattern value="yyyy-MM-dd".log""/>
		<rollingStyle value="Date"/>
		<!--保证在日志分割时,新日志的序号会添加在后缀名之前-->
		<preserveLogFileNameExtension value="true"/>
		<layout type="log4net.Layout.PatternLayout">
			<conversionPattern value="[%-5level] [%date{yyyy-MM-dd HH:mm:ss.fff}] %24logger [%line] [%t] [%M] - %message%newline" />
		</layout>
		<lockingmodel type="log4net.appender.fileappender+minimallock" />
		<filter type="log4net.Filter.LevelRangeFilter">
			<levelMin value="INFO" />
			<levelMax value="ERROR" />
		</filter>
	</appender>
	<appender name="RollingFileError" type="log4net.Appender.RollingFileAppender">
		<file type="log4net.Util.PatternString" value="logs/error/client_error_log_"/>
		<appendToFile value="true"/>
		<encoding value="utf-8" />
		<maxSizeRollBackups value="30"/>
		<maximumFileSize value="10MB"/>
		<staticLogFileName value="false"/>
		<datePattern value="yyyy-MM-dd".log""/>
		<rollingStyle value="Date"/>
		<!--保证在日志分割时,新日志的序号会添加在后缀名之前-->
		<preserveLogFileNameExtension value="true"/>
		<layout type="log4net.Layout.PatternLayout">
			<conversionPattern value="[%-5level] [%date{yyyy-MM-dd HH:mm:ss.fff}] %24logger [%line] [%t] [%M] - %message%newline" />
		</layout>
		<lockingmodel type="log4net.appender.fileappender+minimallock" />
		<filter type="log4net.Filter.LevelRangeFilter">
			<levelMin value="ERROR" />
			<levelMax value="ERROR" />
		</filter>
	</appender>
</log4net>

  

第三步:在Main中增加一行代码(用于从指定的XML配置文件(在这个例子中是log4net.config)中加载日志配置)

XmlConfigurator.Configure(new FileInfo("log4net.config"));

posted @ 2024-02-26 12:52  sun-sailing  阅读(76)  评论(0编辑  收藏  举报