第一步:引入Log4net.dll 文件的引用app
第二步:添加LogHelper類,代碼以下spa
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using log4net; namespace DemoLog4net { /// <summary> /// 日誌等級 /// </summary> public enum LogLevel { Error, Debug, Warning, Info } /// <summary> /// 日誌類型 /// </summary> public enum LogType { AppLog, ErrorLog, DebugLog, OtherLog } /// <summary> /// 單例模式初始化 /// </summary> public class Singleton { private ILog Log; private static Singleton instance; private Singleton() { } public static Singleton getInstance() { if (instance == null) { instance = new Singleton(); } return instance; } /// <summary> /// 獲取日誌初始化器 /// </summary> /// <param name="logType"></param> /// <returns></returns> public ILog Init(LogType logType) { string s = logType.ToString(); Log = LogManager.GetLogger(s); return Log; } } /// <summary> /// 日誌操做類 /// </summary> public class LogHelper { /// <summary> /// 輸出Erro日誌 /// </summary> /// <param name="logType"></param> /// <param name="message"></param> public static void Error(LogType logType, string message) { WriteLog(logType, LogLevel.Error, message); } /// <summary> /// 輸出Warning日誌 /// </summary> /// <param name="logType"></param> /// <param name="message"></param> public static void Warning(LogType logType, string message) { //記錄日誌 WriteLog(logType, LogLevel.Warning, message); } /// <summary> /// 輸出Info日誌 /// </summary> /// <param name="logType"></param> /// <param name="message"></param> public static void Info(LogType logType, string message) { //記錄日誌 WriteLog(logType, LogLevel.Info, message); } public static void Debug(LogType logType, string message) { //記錄日誌 WriteLog(logType, LogLevel.Debug, message); } /// <summary> /// 寫日誌 /// </summary> /// <param name="logType"></param> /// <param name="logLevel"></param> /// <param name="message"></param> private static void WriteLog(LogType logType, LogLevel logLevel, string message) { ILog Log = Singleton.getInstance().Init(logType); switch (logLevel) { case LogLevel.Debug: Log.Debug(message); break; case LogLevel.Error: Log.Error(message); break; case LogLevel.Info: Log.Info(message); break; case LogLevel.Warning: Log.Warn(message); break; } } } }
第三步:添加配置文件Log4net.config文件 ,記得將此文件的【複製到輸出目錄 】設置複製調試
<?xml version="1.0" encoding="utf-8" ?> <configuration> <configSections> <section name="log4net" type="System.Configuration.IgnoreSectionHandler"/> </configSections> <appSettings> </appSettings> <log4net> <!--通常信息日誌--> <appender name="AppLog" type="log4net.Appender.RollingFileAppender"> <file value="Log/AppLog/" /> <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="AppLog" /> </filter> <filter type="log4net.Filter.DenyAllFilter" /> </appender> <!--嚴重錯誤日誌--> <appender name="ErrorLog" type="log4net.Appender.RollingFileAppender"> <file value="Log/ErrorLog/" /> <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="ErrorLog" /> </filter> <filter type="log4net.Filter.DenyAllFilter" /> </appender> <!--調試日誌--> <appender name="DebugLog" type="log4net.Appender.RollingFileAppender"> <file value="Log/DebugLog/" /> <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="DebugLog" /> </filter> <filter type="log4net.Filter.DenyAllFilter" /> </appender> <!--其餘信息日誌--> <appender name="OtherLog" type="log4net.Appender.RollingFileAppender"> <file value="Log/OtherLog/" /> <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="OtherLog" /> </filter> <filter type="log4net.Filter.DenyAllFilter" /> </appender> <root> <level value="ALL"/> <appender-ref ref="AppLog"/> <appender-ref ref="ErrorLog"/> <appender-ref ref="DebugLog"/> <appender-ref ref="OtherLog"/> </root> </log4net> </configuration>
第五步:在AssemblyInfo.cs文件中添加日誌
[assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net_dcs.config", Watch = true)]code