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值。");