1 配置文件log4net_dcs.config
<configuration>
<configSections>
<section name="log4net" type="System.Configuration.IgnoreSectionHandler"/>
</configSections>
<appSettings>
</appSettings>
<log4net>
<!--一般信息日志-->
<appender name="InfoLog" type="log4net.Appender.RollingFileAppender">
<file value="Log/InfoLog/" />
<appendToFile value="true" />
<rollingStyle value="Date" />
<staticLogFileName value="false" />
<datePattern value="yyyyMMdd".log"" />
<layout type="log4net.Layout.PatternLayout">
<!--輸出格式-->
<conversionPattern value="%date %-5level %message%newline" />
</layout>
<filter type="log4net.Filter.LoggerMatchFilter">
<loggerToMatch value="InfoLog" />
</filter>
<filter type="log4net.Filter.DenyAllFilter" />
</appender>
<!--系統日志-->
<appender name="SysLog" type="log4net.Appender.RollingFileAppender">
<file value="Log/SysLog/" />
<appendToFile value="true" />
<rollingStyle value="Date" />
<staticLogFileName value="false" />
<datePattern value="yyyyMMdd".log"" />
<layout type="log4net.Layout.PatternLayout">
<!--輸出格式-->
<conversionPattern value="%date %-5level %message%newline" />
</layout>
<filter type="log4net.Filter.LoggerMatchFilter">
<loggerToMatch value="SysLog" />
</filter>
<filter type="log4net.Filter.DenyAllFilter" />
</appender>
<!--通訊服務日志-->
<appender name="CommLog" type="log4net.Appender.RollingFileAppender">
<file value="Log/CommLog/" />
<appendToFile value="true" />
<rollingStyle value="Date" />
<staticLogFileName value="false" />
<datePattern value="yyyyMMdd".log"" />
<layout type="log4net.Layout.PatternLayout">
<!--輸出格式-->
<conversionPattern value="%date %-5level %message%newline" />
</layout>
<filter type="log4net.Filter.LoggerMatchFilter">
<loggerToMatch value="CommLog" />
</filter>
<filter type="log4net.Filter.DenyAllFilter" />
</appender>
<!--第三方應用服務日志-->
<appender name="ThirdLog" type="log4net.Appender.RollingFileAppender">
<file value="Log/ThirdLog/" />
<appendToFile value="true" />
<rollingStyle value="Date" />
<staticLogFileName value="false" />
<datePattern value="yyyyMMdd".log"" />
<layout type="log4net.Layout.PatternLayout">
<!--輸出格式-->
<conversionPattern value="%date %-5level %message%newline" />
</layout>
<filter type="log4net.Filter.LoggerMatchFilter">
<loggerToMatch value="ThirdLog" />
</filter>
<filter type="log4net.Filter.DenyAllFilter" />
</appender>
<!--數據持久化日志-->
<appender name="PersistenceLog" type="log4net.Appender.RollingFileAppender">
<file value="Log/PersistenceLog/" />
<appendToFile value="true" />
<rollingStyle value="Date" />
<staticLogFileName value="false" />
<datePattern value="yyyyMMdd".log"" />
<layout type="log4net.Layout.PatternLayout">
<!--輸出格式-->
<conversionPattern value="%date %-5level %message%newline" />
</layout>
<filter type="log4net.Filter.LoggerMatchFilter">
<loggerToMatch value="PersistenceLog" />
</filter>
<filter type="log4net.Filter.DenyAllFilter" />
</appender>
<root>
<level value="ALL"/>
<appender-ref ref="InfoLog"/>
<appender-ref ref="SysLog"/>
<appender-ref ref="CommLog"/>
<appender-ref ref="ThirdLog"/>
<appender-ref ref="PersistenceLog"/>
</root>
</log4net>
</configuration>
2 在AssemblyInfo.cs文件中添加
[assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net_dcs.config", Watch = true)]
3添加幫助類文件C_LogWriter.cs
/// <summary> /// 日志等級 /// </summary> enum LogLevel { Error, Debug, Warning, Info } /// <summary> /// 日志類型 /// </summary> enum LogType { InfoLog, SysLog, CommLog, ThirdLog, PersistenceLog } /// <summary> /// 日志記錄服務 /// </summary> class C_LogWriter { /// <summary> /// 日志接口 /// </summary> private log4net.ILog m_Log; public void Init(LogType _LogType) { string s = _LogType.ToString(); m_Log = log4net.LogManager.GetLogger(s); } /// <summary> /// 輸出錯誤級別日志 /// </summary> /// <param name="message">輸出的消息</param> public void Error(string message) { //記錄日志 WriteLog(LogLevel.Error, message); } /// <summary> /// 輸出警告級別日志 /// </summary> /// <param name="message">輸出的消息</param> public void Warning(string message) { //記錄日志 WriteLog(LogLevel.Warning, message); } /// <summary> /// 輸出信息級別日志 /// </summary> /// <param name="message">輸出的消息</param> public void Info(string message) { //記錄日志 WriteLog(LogLevel.Info, message); } /// <summary> /// 輸出調試級別日志 /// </summary> /// <param name="message">輸出的消息</param> public void Debug(string message) { //記錄日志 WriteLog(LogLevel.Debug, message); } /// <summary> /// 記錄系統日志 /// </summary> /// <param name="logLevel">日志級別</param> /// <param name="message">輸出的消息</param> private void WriteLog(LogLevel logLevel, string message) { switch (logLevel) { case LogLevel.Debug: m_Log.Debug(message); break; case LogLevel.Error: m_Log.Error(message); break; case LogLevel.Info: m_Log.Info(message); break; case LogLevel.Warning: m_Log.Warn(message); break; } } }
4 調用
C_LogWriter log = new C_LogWriter(); log.Init(LogType.CommLog); log.Warning("前蘇聯,。"); log = new C_LogWriter(); log.Init(LogType.InfoLog); log.Warning("前。"); log = new C_LogWriter(); log.Init(LogType.PersistenceLog); log.Warning("年開。"); log = new C_LogWriter(); log.Init(LogType.SysLog); log.Warning("前年開。"); log = new C_LogWriter(); log.Init(LogType.ThirdLog); log.Warning("前蘇聯軍隊在1值。");
