1.NuGet安装log4net.
2.修改配置文件
<?xml version="1.0"?>
<configuration>
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" />
</configSections>
<log4net>
<!-- OFF, FATAL, ERROR, WARN, INFO, DEBUG, ALL -->
<!-- Set root logger level to ERROR and its appenders -->
<root>
<level value="ALL"/>
<appender-ref ref="SysAppender"/>
</root>
<!-- Print only messages of level DEBUG or above in the packages -->
<logger name="WebLogger">
<level value="ALL"/>
</logger>
<appender name="SysAppender" type="log4net.Appender.RollingFileAppender,log4net" >
<param name="File" value="Logger/" />
<param name="AppendToFile" value="true" />
<param name="RollingStyle" value="Date" />
<param name="DatePattern" value=""Logs_"yyyyMMdd".txt"" />
<param name="StaticLogFileName" value="false" />
<layout type="log4net.Layout.PatternLayout,log4net">
<param name="ConversionPattern" value="%d [%t] %-5p %c - %m%n" />
<param name="Header" value="
----------------------header--------------------------
" />
<param name="Footer" value="
----------------------footer--------------------------
" />
</layout>
</appender>
</log4net>
</configuration>
3.AssemblyInfo.cs中加入代码
// 日志组件配置
[assembly: log4net.Config.XmlConfigurator(ConfigFile = "Web.config", ConfigFileExtension = "config", Watch = true)]
4.公共类封装方法调用log4net
1 using System; 2 using System.Collections.Generic; 3 using System.Configuration; 4 using System.Linq; 5 using System.Web; 6 7 namespace TestLog4Net 8 { 9 public class MyLog4NetInfo 10 { 11 private static readonly log4net.ILog log = log4net.LogManager.GetLogger("WebLogger"); 12 13 public MyLog4NetInfo() 14 { 15 } 16 17 private static void SetConfig() 18 { 19 object o = ConfigurationManager.GetSection("log4net"); 20 log4net.Config.XmlConfigurator.Configure(o as System.Xml.XmlElement); 21 } 22 23 public static void LogInfo(string Message) 24 { 25 if (!log.IsInfoEnabled) 26 SetConfig(); 27 log.Info(Message); 28 } 29 30 public static void LogInfo(string Message,Exception ex) 31 { 32 if (!log.IsInfoEnabled) 33 SetConfig(); 34 log.Info(Message, ex); 35 } 36 37 public static void ErrorInfo(string Message) 38 { 39 if (!log.IsInfoEnabled) 40 SetConfig(); 41 log.Error(Message); 42 } 43 44 public static void DebugInfo(string Message) 45 { 46 if (!log.IsInfoEnabled) 47 SetConfig(); 48 log.Debug(Message); 49 } 50 } 51 }
5.测试页面Log4NetTest.aspx
1 <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Log4NetTest.aspx.cs" Inherits="TestLog4Net.Log4NetTest" %> 2 3 <!DOCTYPE html> 4 5 <html xmlns="http://www.w3.org/1999/xhtml"> 6 <head runat="server"> 7 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> 8 <title></title> 9 </head> 10 <body> 11 <form id="form1" runat="server"> 12 <asp:Button ID="button1" runat="server" Text="Button" OnClick="button1_Click" /> 13 </form> 14 </body> 15 </html>
Log4NetTest.aspx.cs
1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Web; 5 using System.Web.UI; 6 using System.Web.UI.WebControls; 7 8 namespace TestLog4Net 9 { 10 public partial class Log4NetTest : System.Web.UI.Page 11 { 12 protected void Page_Load(object sender, EventArgs e) 13 { 14 15 } 16 17 protected void button1_Click(object sender, EventArgs e) 18 { 19 MyLog4NetInfo.LogInfo("错误日志test"); 20 MyLog4NetInfo.LogInfo("错误日志test"); 21 MyLog4NetInfo.LogInfo("错误日志test"); 22 } 23 } 24 }