控制台:
App.config,log4的配置,同時要在E:\MyWork\log4日志測試\ 建立對應文文件夾存放log文件
<?xml version="1.0" encoding="utf-8" ?> <configuration> <configSections> <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/> <!--log4net組件--> </configSections> <log4net> <root> <!--從高到低的七個級別:OFF,FATAL,RROR,WARN,INFO,DEBUG,ALL--> <level value="ALL"/> </root> <!--配置程序報錯專用--> <logger name="testLog"> <level value="ALL"/> <appender-ref ref="testLogApp"/> </logger> <appender name="testLogApp" type="log4net.Appender.RollingFileAppender, log4net"> <!--日志路徑--> <param name="File" value="E:\MyWork\log4日志測試\"/> <!--日期為滾動類型(每天產生一個日志文件)--> <param name="RollingStyle" value="Date"/> <!--追加方式--> <param name="AppendToFile" value="true"/> <!--日志文件名--> <param name="DatePattern" value="yyyy-MM-dd".log""/> <!--關閉固定文件方式--> <param name="StaticLogFileName" value="false"/> <!--記錄格式--> <layout type="log4net.Layout.PatternLayout, log4net"> <!--%m:消息內容--> <!--%n:換行--> <!--%d:輸出時間--> <!--%p:級別--> <!--%c:類名--> <!--%F:文件名--> <param name="ConversionPattern" value="[%d] %p - %m%n"/> </layout> <!--過濾器--> <filter type="log4net.Filter.LevelRangeFilter, log4net"> <param name="LevelMin" value="ALL"/> <param name="LevelMax" value="OFF"/> </filter> </appender> </log4net> <startup> <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" /> </startup> </configuration>
Program:
static void Main(string[] args) { log4net.Config.DOMConfigurator.Configure(); //不加這句話日志不會生成 log4net.ILog testLog = log4net.LogManager.GetLogger("testLog"); try { throw new ApplicationException("測試log4,我是控制台拋出的異常!!"); } catch (Exception ex) { testLog.Info("******************************* begin static void Main(string[] args)程序異常 ********************************************"); testLog.Info(ex); testLog.Info("******************************* end static void Main(string[] args)程序異常 ********************************************"); } }
結果:


webform程序配置
web.config
<?xml version="1.0" encoding="utf-8"?> <!-- 有關如何配置 ASP.NET 應用程序的詳細信息,請訪問 http://go.microsoft.com/fwlink/?LinkId=169433 --> <configuration> <configSections> <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/> <!--log4net組件--> </configSections> <log4net> <root> <!--從高到低的七個級別:OFF,FATAL,RROR,WARN,INFO,DEBUG,ALL--> <level value="ALL"/> </root> <!--配置程序報錯專用--> <logger name="testLog"> <level value="ALL"/> <appender-ref ref="testLogApp"/> </logger> <appender name="testLogApp" type="log4net.Appender.RollingFileAppender, log4net"> <!--日志路徑--> <param name="File" value="E:\MyWork\log4日志測試\"/> <!--日期為滾動類型(每天產生一個日志文件)--> <param name="RollingStyle" value="Date"/> <!--追加方式--> <param name="AppendToFile" value="true"/> <!--日志文件名--> <param name="DatePattern" value="yyyy-MM-dd".log""/> <!--關閉固定文件方式--> <param name="StaticLogFileName" value="false"/> <!--記錄格式--> <layout type="log4net.Layout.PatternLayout, log4net"> <!--%m:消息內容--> <!--%n:換行--> <!--%d:輸出時間--> <!--%p:級別--> <!--%c:類名--> <!--%F:文件名--> <param name="ConversionPattern" value="[%d] %p - %m%n"/> </layout> <!--過濾器--> <filter type="log4net.Filter.LevelRangeFilter, log4net"> <param name="LevelMin" value="ALL"/> <param name="LevelMax" value="OFF"/> </filter> </appender> </log4net> <system.web> <compilation debug="true" targetFramework="4.5" /> <httpRuntime targetFramework="4.5" /> </system.web> </configuration>
log4net.Config.DOMConfigurator.Configure();//這句注冊的語句最好寫在Global.asax全局訪問類里,webform程序不寫在里面每個頁面都要寫。
Global:
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Security; using System.Web.SessionState; namespace log4.test.Webform { public class Global : System.Web.HttpApplication { protected void Application_Start(object sender, EventArgs e) { log4net.Config.DOMConfigurator.Configure(); } } }
WebForm1.aspx:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="log4.test.Webform.WebForm1" %> <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <title></title> </head> <body> <form id="form1" runat="server"> <div> <asp:Button ID="btnsave" runat="server" Text="testLog4" OnClick="btnsave_Click" /> </div> </form> </body> </html>
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; namespace log4.test.Webform { public partial class WebForm1 : System.Web.UI.Page { protected readonly log4net.ILog testLog = log4net.LogManager.GetLogger("testLog"); protected void Page_Load(object sender, EventArgs e) { } protected void btnsave_Click(object sender, EventArgs e) { try { throw new ApplicationException("測試log4,我是webform拋出的異常!!"); } catch (Exception ex) { testLog.Info("******************************* begin btnsave_Click(object sender, EventArgs e)點擊事件異常 ********************************************"); testLog.Info(ex); testLog.Info("******************************* end btnsave_Click(object sender, EventArgs e)點擊事件異常 ********************************************"); } } } }

