原文地址:https://www.cnblogs.com/lsgsanxiao/p/5845300.html 略有刪改 1.配置文件,可以單獨創建log4net.config文件,然後手動指定目錄,也可以在項目的app.config或web.config的configuration節點下插入以下代碼 ...
原文地址:https://www.cnblogs.com/lsgsanxiao/p/5845300.html
略有刪改
1.配置文件,可以單獨創建log4net.config文件,然後手動指定目錄,也可以在項目的app.config或web.config的configuration節點下插入以下代碼
<?xml version="1.0" encoding="utf-8" ?> <configuration> <configSections> <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" /> </configSections> <log4net> <logger name="logerror"> <level value="ERROR" /> <appender-ref ref="ErrorAppender" /> </logger> <logger name="loginfo"> <level value="INFO" /> <appender-ref ref="InfoAppender" /> </logger> <appender name="ErrorAppender" type="log4net.Appender.RollingFileAppender"> <!--設置日誌存儲路徑--> <param name="File" value="Data//WebLog//LogError//" /> <!--是否追加到文件--> <param name="AppendToFile" value="true" /> <!--最多產生的日誌文件數,超過則只保留最新的n個。設定值value="-1"為不限文件數--> <param name="MaxSizeRollBackups" value="100" /> <param name="MaxFileSize" value="1024" /> <!--是否只寫到一個文件中--> <param name="StaticLogFileName" value="false" /> <!--這是按日期產生文件夾,併在文件名前也加上日期--> <param name="DatePattern" value="yyyyMM/dd".log"" /> <!--按照何種方式產生多個日誌文件(日期[Date],文件大小[Size],混合[Composite])--> <param name="RollingStyle" value="Date" /> <layout type="log4net.Layout.PatternLayout"> <param name="ConversionPattern" value="%n異常時間:%d [%t] %n異常級別:%-5p %n異常位置:[%thread] (%file:%line) %n消息描述:%message%n異常:%exception%n%n " /> </layout> </appender> <appender name="InfoAppender" type="log4net.Appender.RollingFileAppender"> <!--設置日誌存儲路徑--> <param name="File" value="Data//WebLog//LogInfo//" /> <!--是否追加到文件--> <param name="AppendToFile" value="true" /> <!--最多產生的日誌文件數,超過則只保留最新的n個。設定值value="-1"為不限文件數--> <param name="MaxSizeRollBackups" value="100" /> <param name="MaxFileSize" value="1024" /> <!--是否只寫到一個文件中--> <param name="StaticLogFileName" value="false" /> <!--這是按日期產生文件夾,併在文件名前也加上日期--> <param name="DatePattern" value="yyyyMM/dd".log"" /> <!--按照何種方式產生多個日誌文件(日期[Date],文件大小[Size],混合[Composite])--> <param name="RollingStyle" value="Date" /> <layout type="log4net.Layout.PatternLayout"> <param name="ConversionPattern" value="%n日誌時間:%d [%t] %n日誌級別:%-5p %n消息描述:%c [%x] %n%m %n " /> </layout> </appender> </log4net> </configuration>
2.讀取配置
在項目啟動文件裡加入讀取配置的代碼,可以說Program.cs或者Global.cs等
如果是直接卸載項目配置文件下,用這種方式讀取
log4net.Config.XmlConfigurator.Configure();
如果是單獨寫的log4net.config文件,則需要把文件路徑傳給Configure()方法
var fi = new System.IO.FileInfo(path); log4net.Config.XmlConfigurator.Configure(fi);
3.幫助類
/// <summary> /// LogHelper的摘要說明。 /// </summary> public class LogHelper { /// <summary> /// 靜態只讀實體對象info信息 /// </summary> public static readonly log4net.ILog Loginfo = log4net.LogManager.GetLogger("loginfo"); /// <summary> /// 靜態只讀實體對象error信息 /// </summary> public static readonly log4net.ILog Logerror = log4net.LogManager.GetLogger("logerror"); /// <summary> /// 添加info信息 /// </summary> /// <param name="info">自定義日誌內容說明</param> public static void WriteLog(string info) { try { if (Loginfo.IsInfoEnabled) { Loginfo.Info(info); } } catch { } } /// <summary> /// 添加異常信息 /// </summary> /// <param name="info">自定義日誌內容說明</param> /// <param name="ex">異常信息</param> public static void WriteLog(string info, Exception ex) { try { if (Logerror.IsErrorEnabled) { Logerror.Error(info, ex); } } catch { } } }