1 下載log4net.dllweb
2 在web.config 中的 <configSections>節點內增長以下代碼app
<!--log4net_s--> <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" /> <!--log4net_e-->
3 新增Config文件夾並增長log4net.config文件 具體配置能夠自定義 示例內容以下:spa
<?xml version="1.0" encoding="utf-8"?> <configuration> <configSections> <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net"/> </configSections> <log4net debug="false"> <!--錯誤日誌配置--> <appender name="ErrorAppender" type="log4net.Appender.RollingFileAppender"> <param name="File" value="D:\\MyWebLog\\LogError\\" /> <param name="AppendToFile" value="true" /> <param name="MaxSizeRollBackups" value="100" /> <param name="MaxFileSize" value="10240" /> <param name="StaticLogFileName" value="false" /> <param name="DatePattern" value="yyyyMMdd".txt"" /> <param name="RollingStyle" value="Date" /> <layout type="log4net.Layout.PatternLayout"> <param name="ConversionPattern" value="%n%d-------------------%n%m%n" /> </layout> </appender> <!--信息日誌配置--> <appender name="InfoAppender" type="log4net.Appender.RollingFileAppender"> <param name="File" value="D:\\MyWebLog\\LogInfo\\" /> <param name="AppendToFile" value="true" /> <param name="MaxFileSize" value="10240" /> <param name="MaxSizeRollBackups" value="100" /> <param name="StaticLogFileName" value="false" /> <param name="DatePattern" value="yyyyMMdd".txt"" /> <param name="RollingStyle" value="Date" /> <layout type="log4net.Layout.PatternLayout"> <param name="ConversionPattern" value="%n%d-------------------%n%m%n" /> </layout> </appender> <!--Debug日誌配置--> <appender name="DebugAppender" type="log4net.Appender.RollingFileAppender"> <param name="File" value="D:\\MyWebLog\\LogDebug\\" /> <param name="AppendToFile" value="true" /> <param name="MaxFileSize" value="10240" /> <param name="MaxSizeRollBackups" value="100" /> <param name="StaticLogFileName" value="false" /> <param name="DatePattern" value="yyyyMMdd".txt"" /> <param name="RollingStyle" value="Date" /> <layout type="log4net.Layout.PatternLayout"> <param name="ConversionPattern" value="%d,%m%n" /> </layout> </appender> <!--嚴重錯誤日誌配置--> <appender name="FataAppender" type="log4net.Appender.RollingFileAppender"> <param name="File" value="D:\\MyWebLog\\LogFata\\" /> <param name="AppendToFile" value="true" /> <param name="MaxFileSize" value="10240" /> <param name="MaxSizeRollBackups" value="100" /> <param name="StaticLogFileName" value="false" /> <param name="DatePattern" value="yyyyMMdd".txt"" /> <param name="RollingStyle" value="Date" /> <layout type="log4net.Layout.PatternLayout"> <param name="ConversionPattern" value="%d,%m%n" /> </layout> </appender> <!--警告日誌配置--> <appender name="WarnAppender" type="log4net.Appender.RollingFileAppender"> <param name="File" value="D:\\MyWebLog\\LogWarn\\" /> <param name="AppendToFile" value="true" /> <param name="MaxFileSize" value="10240" /> <param name="MaxSizeRollBackups" value="100" /> <param name="StaticLogFileName" value="false" /> <param name="DatePattern" value="yyyyMMdd".txt"" /> <param name="RollingStyle" value="Date" /> <layout type="log4net.Layout.PatternLayout"> <param name="ConversionPattern" value="%d,%m%n" /> </layout> </appender> <!--log4net.LogManager.GetLogger("logerror")用這個來選擇這種類型--> <logger name="logerror"> <level value="ERROR" /> <appender-ref ref="ErrorAppender" /> </logger> <logger name="loginfo"> <level value="INFO" /> <appender-ref ref="InfoAppender" /> </logger> <logger name="logdebug"> <level value="DEBUG" /> <appender-ref ref="DebugAppender" /> </logger> <logger name="logwarn"> <level value="WARN" /> <appender-ref ref="WarnAppender" /> </logger> <logger name="logfata"> <level value="FATA" /> <appender-ref ref="FataAppender" /> </logger> </log4net> </configuration>
4 添加一個Log4NetHelper類庫文件 內容以下:debug
public static class Log4NetHelper { private static string _debugAppender = "logdebug"; private static string _errorAppender = "logerror"; private static string _fatalAppender = "logfata"; private static string _infoAppender = "loginfo"; private static string _warnAppender = "logwarn"; #region 屬性設置 /// <summary> /// 設置DebugAppender的值,默認爲:logdebug /// </summary> public static string DebugAppender { set { _debugAppender = value; } } /// <summary> /// 設置ErrorAppender的值,默認爲:logerror /// </summary> public static string ErrorAppender { set { _errorAppender = value; } } /// <summary> /// 設置FatalAppender的值,默認爲:logfata /// </summary> public static string FatalAppender { set { _fatalAppender = value; } } /// <summary> /// 設置InfoAppender的值,默認爲:loginfo /// </summary> public static string InfoAppender { set { _infoAppender = value; } } /// <summary> /// 設置WarnAppender的值,默認爲:logwarn /// </summary> public static string WarnAppender { set { _warnAppender = value; } } #endregion /// <summary> /// 加載log4net的日誌配置文件 /// </summary> /// <param name="configFilePath">日誌配置文件的完整路徑</param> public static void LoadConfig(string configFilePath) { if (string.IsNullOrEmpty(configFilePath) || !File.Exists(configFilePath)) { throw new ArgumentNullException("日誌配置文件不存在"); } XmlConfigurator.ConfigureAndWatch(new FileInfo(configFilePath)); } /// <summary> /// 根據指定的日誌適配器名稱獲取日誌對象 /// </summary> /// <param name="appenderName">日誌適配器名稱</param> /// <returns>日誌對象</returns> private static ILog GetLogByName(string appenderName) { if (string.IsNullOrEmpty(appenderName)) { throw new ArgumentNullException("日誌配置名稱不能爲空"); } return LogManager.GetLogger(appenderName); } /// <summary> /// 記錄調試日誌 /// </summary> /// <param name="message">日誌信息,若是因異常記錄日誌,則message能夠爲null</param> public static void Debug(string message) { ILog logByName = GetLogByName(_debugAppender); if (logByName.IsDebugEnabled) { logByName.Debug(message); } } /// <summary> /// 記錄調試日誌 /// </summary> /// <param name="message">日誌信息,若是因異常記錄日誌,則message能夠爲null</param> /// <param name="exception">爲日誌附加異常信息,能夠在配置中獲取更準確的信息,如無異常信息,則能夠爲null</param> public static void Debug(string message, Exception exception) { ILog logByName = GetLogByName(_debugAppender); if (logByName.IsDebugEnabled) { logByName.Debug(message, exception); } } /// <summary> /// 記錄錯誤日誌 /// </summary> /// <param name="message">日誌信息,若是因異常記錄日誌,則message能夠爲null</param> public static void Error(string message) { ILog logByName = GetLogByName(_errorAppender); if (logByName.IsErrorEnabled) { logByName.Error(message); } } /// <summary> /// 記錄錯誤日誌 /// </summary> /// <param name="message">日誌信息,若是因異常記錄日誌,則message能夠爲null</param> /// <param name="exception">爲日誌附加異常信息,能夠在配置中獲取更準確的信息,如無異常信息,則能夠爲null</param> public static void Error(string message, Exception exception) { ILog logByName = GetLogByName(_errorAppender); if (logByName.IsErrorEnabled) { logByName.Error(message, exception); } } /// <summary> /// 記錄嚴重錯誤日誌 /// </summary> /// <param name="message">日誌信息,若是因異常記錄日誌,則message能夠爲null</param> public static void Fatal(string message) { ILog logByName = GetLogByName(_fatalAppender); if (logByName.IsFatalEnabled) { logByName.Fatal(message); } } /// <summary> /// 記錄嚴重錯誤日誌 /// </summary> /// <param name="message">日誌信息,若是因異常記錄日誌,則message能夠爲null</param> /// <param name="exception">爲日誌附加異常信息,能夠在配置中獲取更準確的信息,如無異常信息,則能夠爲null</param> public static void Fatal(string message, Exception exception) { ILog logByName = GetLogByName(_fatalAppender); if (logByName.IsFatalEnabled) { logByName.Fatal(message, exception); } } /// <summary> /// 記錄信息日誌 /// </summary> /// <param name="message">日誌信息,若是因異常記錄日誌,則message能夠爲null</param> public static void Info(string message) { ILog logByName = GetLogByName(_infoAppender); if (logByName.IsInfoEnabled) { logByName.Info(message); } } /// <summary> /// 記錄信息日誌 /// </summary> /// <param name="message">日誌信息,若是因異常記錄日誌,則message能夠爲null</param> /// <param name="exception">爲日誌附加異常信息,能夠在配置中獲取更準確的信息,如無異常信息,則能夠爲null</param> public static void Info(string message, Exception exception) { ILog logByName = GetLogByName(_infoAppender); if (logByName.IsInfoEnabled) { logByName.Info(message, exception); } } /// <summary> /// 記錄警告日誌 /// </summary> /// <param name="message">日誌信息,若是因異常記錄日誌,則message能夠爲null</param> public static void Warn(string message) { ILog logByName = GetLogByName(_warnAppender); if (logByName.IsWarnEnabled) { logByName.Warn(message); } } /// <summary> /// 記錄警告日誌 /// </summary> /// <param name="message">日誌信息,若是因異常記錄日誌,則message能夠爲null</param> /// <param name="exception">爲日誌附加異常信息,能夠在配置中獲取更準確的信息,如無異常信息,則能夠爲null</param> public static void Warn(string message, Exception exception) { ILog logByName = GetLogByName(_warnAppender); if (logByName.IsWarnEnabled) { logByName.Warn(message, exception); } } }
5 在global.asax.cs 的Application_Start方法增長以下代碼調試
//讀取log4net的配置文件日誌
Log4NetHelper.LoadConfig(AppDomain.CurrentDomain.BaseDirectory + "Config\\Log4net.config");
6 控制器action方法調用示例code
Log4NetHelper.Error("abc"); Log4NetHelper.Info("abc"); Log4NetHelper.Fatal("abc"); Log4NetHelper.Debug("abc"); Log4NetHelper.Warn("abc");