zl程序教程

您现在的位置是:首页 >  后端

当前栏目

log4j

2023-09-14 09:10:47 时间

log4j日志处理

using log4net;
using System;
//[Assembly:log4net.Config.XmlConfigurator(ConfigFile="Config\\log4net.config",Watch=true)]
namespace Log
{
	public class LogProxy
	{
		public delegate void FormLog(string text);
		private static ILog logger = LoggerMnaager.GetLogger("RollingLogFileAppender");
		private static FormLog formLog;
		
		private static string configPath = AppDomain.CurrentDomain.BaseDirectory+ "Config\\log4net.config";
		
		static LogProxy()
		{
			logger = LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
			if (!string.IsNullOrEmpty(configPath))
            {
                log4net.Config.XmlConfigurator.Configure(new System.IO.FileInfo(configPath));
            }
            else
            {
                log4net.Config.XmlConfigurator.Configure();
            }
		}
		
		public static void info(string text)
		{
			logger.info(text);
			formLog?.Invoke(text);
		}
		
		public static void Register(FormLog formlog)
		{
			this.formLog = formlog;
		}
		
	}
}
<?xml version="1.0" encoding="utf-8"?>
<log4net>
	<appender name="RollingFileDebugDir" type="log4net.Appender.RollingFileAppender">
		<file value="Log\\All\\" />
		<appendToFile value="true" />
		<datePattern value="yyyy\\yyyyMM\\yyyy-MM-dd-HH.ERROR" />
		<maxSizeRollBackups value="10" />
		<!--Composite -->
		<rollingStyle value="Date" />
		<maximumFileSize value="100MB" />
		<staticLogFileName value="false" />
		<layout type="log4net.Layout.PatternLayout">
			<!--%newline输出的日志会换行 [%date{HH:mm:ss fff}]表示记录的时间 -->
			<conversionPattern value="[%date{HH:mm:ss fff}] %- %message%newline" />
			<param name="ConversionPattern" value="%date %message%newline" />
		</layout>
		<filter type="log4net.Filter.LevelRangeFilter">
			<levelMin value="DEBUG" />
			<levelMax value="FATAL" />
		</filter>
	</appender>
	<appender name="RollingFileDebug" type="log4net.Appender.RollingFileAppender">
		<file value="Log\\Debug\\" />
		<appendToFile value="true" />
		<datePattern value="yyyy-MM-dd-HH.REC" />
		<maxSizeRollBackups value="10" />
		<rollingStyle value="Date" />
		<maximumFileSize value="100MB" />
		<staticLogFileName value="false" />
		<layout type="log4net.Layout.PatternLayout">
			<param name="ConversionPattern" value="%date %message%newline" />
		</layout>
		<filter type="log4net.Filter.LevelRangeFilter">
			<levelMin value="DEBUG" />
			<levelMax value="DEBUG" />
		</filter>
	</appender>
	<appender name="RollingFileInfo" type="log4net.Appender.RollingFileAppender">
		<file value="Log\\Info\\" />
		<appendToFile value="true" />
		<datePattern value="yyyy-MM-dd-HH.REC" />
		<maxSizeRollBackups value="10" />
		<rollingStyle value="Date" />
		<maximumFileSize value="100MB" />
		<staticLogFileName value="false" />
		<layout type="log4net.Layout.PatternLayout">
			<param name="ConversionPattern" value="%date %message%newline" />
		</layout>
		<filter type="log4net.Filter.LevelRangeFilter">
			<levelMin value="INFO" />
			<levelMax value="INFO" />
		</filter>
	</appender>
	<appender name="RollingFileWarn" type="log4net.Appender.RollingFileAppender">
		<file value="Log\\Warn\\" />
		<appendToFile value="true" />
		<datePattern value="yyyy-MM-dd-HH.REC" />
		<maxSizeRollBackups value="10" />
		<rollingStyle value="Date" />
		<maximumFileSize value="100MB" />
		<staticLogFileName value="false" />
		<layout type="log4net.Layout.PatternLayout">
			<param name="ConversionPattern" value="%date %message%newline" />
		</layout>
		<filter type="log4net.Filter.LevelRangeFilter">
			<levelMin value="WARN" />
			<levelMax value="WARN" />
		</filter>
	</appender>
	<appender name="RollingFileError" type="log4net.Appender.RollingFileAppender">
		<file value="Log\\Error\\" />
		<appendToFile value="true" />
		<datePattern value="yyyy-MM-dd-HH.REC" />
		<maxSizeRollBackups value="10" />
		<rollingStyle value="Date" />
		<maximumFileSize value="100MB" />
		<staticLogFileName value="false" />
		<layout type="log4net.Layout.PatternLayout">
			<param name="ConversionPattern" value="%date %message%newline" />
		</layout>
		<filter type="log4net.Filter.LevelRangeFilter">
			<levelMin value="ERROR" />
			<levelMax value="ERROR" />
		</filter>
	</appender>
	<appender name="RollingFileFatal" type="log4net.Appender.RollingFileAppender">
		<file value="Log\\Fatal\\" />
		<appendToFile value="true" />
		<datePattern value="yyyy-MM-dd-HH.REC" />
		<maxSizeRollBackups value="10" />
		<rollingStyle value="Date" />
		<maximumFileSize value="100MB" />
		<staticLogFileName value="false" />
		<layout type="log4net.Layout.PatternLayout">
			<param name="ConversionPattern" value="%date %message%newline" />
		</layout>
		<filter type="log4net.Filter.LevelRangeFilter">
			<levelMin value="Fatal" />
			<levelMax value="Fatal" />
		</filter>
	</appender>
	<root>
		<level value="ALL" />
		<appender-ref ref="RollingFileDebugDir" />
		<appender-ref ref="RollingFileDebug" />
		<appender-ref ref="RollingFileInfo" />
		<!--
		<appender-ref ref="RollingFileWarn" />
		<appender-ref ref="RollingFileError" />
		<appender-ref ref="RollingFileFatal" />
		-->
	</root>
</log4net>