第一步:
添加并应用Log4net.dll。然后在Web.config文件中添加下面的配置局
2 | < section name = "log4net" type = "log4net.Config.Log4NetConfigurationSectionHandler, log4net" /> |
第二步:
新建Log4Net.config的配置文件,并在其中添加下面的配置信息:
001 | <? xml version = "1.0" encoding = "UTF-8" ?> |
002 | < log4net debug = "false" > |
005 | < appender name = "LogFileAppenderByDate" type = "log4net.Appender.RollingFileAppender" > |
008 | < param name = "AppendToFile" value = "true" /> |
010 | < param name = "LockingModel" value = "log4net.Appender.FileAppender.MinimalLock" /> |
011 | < param name = "StaticLogFileName" value = "true" /> |
013 | < param name = "File" value = "d:\Log\\" /> |
014 | < param name = "DatePattern" value = "yyyy-MM-dd.LOG" /> |
015 | < param name = "StaticLogFileName" value = "false" /> |
016 | < param name = "RollingStyle" value = "Date" /> |
017 | < layout type = "log4net.Layout.PatternLayout" > |
018 | < param name = "ConversionPattern" value = "时间:%d %n级别:%level %n类名:%c%n文件:%F 第%L行%n日志内容:%m%n-----------------------------------------%n%n" /> |
023 | < appender name = "LogFileAppenderBySize" type = "log4net.Appender.RollingFileAppender" > |
025 | < param name = "AppendToFile" value = "true" /> |
027 | < param name = "LockingModel" value = "log4net.Appender.FileAppender.MinimalLock" /> |
029 | < param name = "StaticLogFileName" value = "true" /> |
032 | < param name = "RollingStyle" value = "Size" /> |
033 | < param name = "File" value = "log.txt" /> |
035 | < param name = "MaximumFileSize" value = "200KB" /> |
037 | < param name = "MaxSizeRollBackups" value = "2" /> |
039 | < param name = "StaticLogFileName" value = "false" /> |
040 | < layout type = "log4net.Layout.PatternLayout" > |
041 | < param name = "ConversionPattern" value = "发生时间:%d %n事件级别:%level %n相关类名:%c%n程序文件:%F 第%L行%n日志内容:%m%n-----------------------------------------%n%n" /> |
046 | < appender name = "AdoNetAppender" type = "log4net.Appender.AdoNetAppender" > |
047 | < bufferSize value = "1" /> |
049 | < connectionType value = "System.Data.SqlClient.SqlConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" /> |
050 | < connectionString value = "Data Source=.\SQLEXPRESS;Initial Catalog=CVDS;User ID=sa;Password=sasa" /> |
051 | < commandText value = "INSERT INTO Log([Date],[Thread],[Level],[Logger],[Message],[Exception]) VALUES (@log_date, @thread, @log_level, @logger, @message, @exception)" /> |
053 | < parameterName value = "@log_date" /> |
054 | < dbType value = "DateTime" /> |
055 | < layout type = "log4net.Layout.RawTimeStampLayout" /> |
058 | < parameterName value = "@thread" /> |
059 | < dbType value = "String" /> |
061 | < layout type = "log4net.Layout.PatternLayout" > |
062 | < conversionPattern value = "%thread" /> |
066 | < parameterName value = "@log_level" /> |
067 | < dbType value = "String" /> |
069 | < layout type = "log4net.Layout.PatternLayout" > |
070 | < conversionPattern value = "%level" /> |
074 | < parameterName value = "@logger" /> |
075 | < dbType value = "String" /> |
077 | < layout type = "log4net.Layout.PatternLayout" > |
078 | < conversionPattern value = "%logger" /> |
082 | < parameterName value = "@message" /> |
083 | < dbType value = "String" /> |
084 | < size value = "4000" /> |
085 | < layout type = "log4net.Layout.PatternLayout" > |
086 | < conversionPattern value = "%message" /> |
090 | < parameterName value = "@exception" /> |
091 | < dbType value = "String" /> |
092 | < size value = "2000" /> |
093 | < layout type = "log4net.Layout.ExceptionLayout" /> |
098 | < level value = "INFO" /> |
100 | < appender-ref ref = "LogFileAppenderByDate" /> |
第三步:
在Global.asax文件中的Application_Start事件中添加如下代码:
1 | protected void Application_Start(object sender, EventArgs e) |
4 | log4net.Config.XmlConfigurator.ConfigureAndWatch( new FileInfo(Server.MapPath( "Log4Net.config" ))); |
第四步:调用LOG4net 写日志
1 | protected void Button2_Click(object sender, EventArgs e) |
3 | ILog logs = LogManager.GetLogger(typeof(TEST)); |
5 | logs.Fatal( "Excption:这里就是要提示的LOG信息" ); |
也可以通过写一个LogHelper.cs类进行封装:
02 | using System.Collections.Generic; |
06 | namespace SBIT.Web.Class |
11 | public class LogHelper |
13 | private static ILog log; |
14 | private static LogHelper logHelper = null ; |
18 | /// <returns></returns> |
19 | public static ILog GetInstance() |
21 | logHelper = new LogHelper( null ); |
28 | /// <param name="configPath"></param> |
29 | /// <returns></returns> |
30 | public static ILog GetInstance( string configPath) |
32 | logHelper = new LogHelper(configPath); |
39 | /// <param name="configPath"></param> |
40 | private LogHelper( string configPath) |
42 | if (! string .IsNullOrEmpty(configPath)) |
44 | log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); |
45 | log4net.Config.XmlConfigurator.Configure( new System.IO.FileInfo(configPath)); |
49 | log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); |
通过封装类写日志的方法如下:
1 | private static readonly ILog logs = LogHelper.GetInstance(); |
2 | protected void Button2_Click( object sender, EventArgs e) |
4 | logs.Fatal( "Excption:这里就是要提示的LOG信息" ); |
转自:http://www.cnblogs.com/huanghai223/archive/2012/02/21/2361529.html