Log4Net组件的应用详解
来源:互联网 发布:淘宝联盟登不上 编辑:程序博客网 时间:2024/06/05 11:08
第一步:
添加并应用Log4net.dll。然后在Web.config文件中添加下面的配置局
1
<
configSections
>
2
<
section
name
=
"log4net"
type
=
"log4net.Config.Log4NetConfigurationSectionHandler, log4net"
/>
3
</
configSections
>
第二步:
新建Log4Net.config的配置文件,并在其中添加下面的配置信息:
001
<?
xml
version
=
"1.0"
encoding
=
"UTF-8"
?>
002
<
log4net
debug
=
"false"
>
003
004
<!--按日期分割日志文件 一天一个-->
005
<
appender
name
=
"LogFileAppenderByDate"
type
=
"log4net.Appender.RollingFileAppender"
>
006
007
<!--是否续写-->
008
<
param
name
=
"AppendToFile"
value
=
"true"
/>
009
<!--最小锁定模型以允许多个进程可以写入同一个文件-->
010
<
param
name
=
"LockingModel"
value
=
"log4net.Appender.FileAppender.MinimalLock"
/>
011
<
param
name
=
"StaticLogFileName"
value
=
"true"
/>
012
<!--保存路径-->
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"
/>
019
</
layout
>
020
</
appender
>
021
022
<!--按日志容量分割日志文件 10KB一个-->
023
<
appender
name
=
"LogFileAppenderBySize"
type
=
"log4net.Appender.RollingFileAppender"
>
024
<!--是否续写-->
025
<
param
name
=
"AppendToFile"
value
=
"true"
/>
026
<!--最小锁定模型以允许多个进程可以写入同一个文件-->
027
<
param
name
=
"LockingModel"
value
=
"log4net.Appender.FileAppender.MinimalLock"
/>
028
029
<
param
name
=
"StaticLogFileName"
value
=
"true"
/>
030
031
<!--按照文件的大小进行变换日志文件-->
032
<
param
name
=
"RollingStyle"
value
=
"Size"
/>
033
<
param
name
=
"File"
value
=
"log.txt"
/>
034
<!--单个文件最大数量 好像只有在 按Size分割时有效-->
035
<
param
name
=
"MaximumFileSize"
value
=
"200KB"
/>
036
<!--保留的log文件数量 超过此数量后 自动删除之前的 好像只有在 按Size分割时有效-->
037
<
param
name
=
"MaxSizeRollBackups"
value
=
"2"
/>
038
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"
/>
042
</
layout
>
043
</
appender
>
044
045
<!--记录日志到数据库-->
046
<
appender
name
=
"AdoNetAppender"
type
=
"log4net.Appender.AdoNetAppender"
>
047
<
bufferSize
value
=
"1"
/>
048
<!--缓冲大小-->
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)"
/>
052
<
parameter
>
053
<
parameterName
value
=
"@log_date"
/>
054
<
dbType
value
=
"DateTime"
/>
055
<
layout
type
=
"log4net.Layout.RawTimeStampLayout"
/>
056
</
parameter
>
057
<
parameter
>
058
<
parameterName
value
=
"@thread"
/>
059
<
dbType
value
=
"String"
/>
060
<
size
value
=
"255"
/>
061
<
layout
type
=
"log4net.Layout.PatternLayout"
>
062
<
conversionPattern
value
=
"%thread"
/>
063
</
layout
>
064
</
parameter
>
065
<
parameter
>
066
<
parameterName
value
=
"@log_level"
/>
067
<
dbType
value
=
"String"
/>
068
<
size
value
=
"50"
/>
069
<
layout
type
=
"log4net.Layout.PatternLayout"
>
070
<
conversionPattern
value
=
"%level"
/>
071
</
layout
>
072
</
parameter
>
073
<
parameter
>
074
<
parameterName
value
=
"@logger"
/>
075
<
dbType
value
=
"String"
/>
076
<
size
value
=
"255"
/>
077
<
layout
type
=
"log4net.Layout.PatternLayout"
>
078
<
conversionPattern
value
=
"%logger"
/>
079
</
layout
>
080
</
parameter
>
081
<
parameter
>
082
<
parameterName
value
=
"@message"
/>
083
<
dbType
value
=
"String"
/>
084
<
size
value
=
"4000"
/>
085
<
layout
type
=
"log4net.Layout.PatternLayout"
>
086
<
conversionPattern
value
=
"%message"
/>
087
</
layout
>
088
</
parameter
>
089
<
parameter
>
090
<
parameterName
value
=
"@exception"
/>
091
<
dbType
value
=
"String"
/>
092
<
size
value
=
"2000"
/>
093
<
layout
type
=
"log4net.Layout.ExceptionLayout"
/>
094
</
parameter
>
095
</
appender
>
096
097
<
root
>
098
<
level
value
=
"INFO"
/>
099
<!--启用按日期分割-->
100
<
appender-ref
ref
=
"LogFileAppenderByDate"
/>
101
<!--启用按容量分割-->
102
<!--<appender-ref ref="LogFileAppenderBySize" />-->
103
<!--启用保存到数据库-->
104
<!--<appender-ref ref="AdoNetAppender" />-->
105
</
root
>
106
107
</
log4net
>
第三步:
在Global.asax文件中的Application_Start事件中添加如下代码:
1
protected
void
Application_Start(object sender, EventArgs e)
2
{
3
// Code that runs on application startup
4
log4net.Config.XmlConfigurator.ConfigureAndWatch(
new
FileInfo(Server.MapPath(
"Log4Net.config"
)));
5
}
第四步:调用LOG4net 写日志
1
protected
void
Button2_Click(object sender, EventArgs e)
2
{
3
ILog logs = LogManager.GetLogger(typeof(TEST));
4
5
logs.Fatal(
"Excption:这里就是要提示的LOG信息"
);
6
}
也可以通过写一个LogHelper.cs类进行封装:
01
using
System;
02
using
System.Collections.Generic;
03
using
System.Web;
04
using
log4net;
05
06
namespace
SBIT.Web.Class
07
{
08
/// <summary>
09
/// 日志辅助类
10
/// </summary>
11
public
class
LogHelper
12
{
13
private
static
ILog log;
14
private
static
LogHelper logHelper =
null
;
15
/// <summary>
16
/// 初始化
17
/// </summary>
18
/// <returns></returns>
19
public
static
ILog GetInstance()
20
{
21
logHelper =
new
LogHelper(
null
);
22
23
return
log;
24
}
25
/// <summary>
26
/// 初始化
27
/// </summary>
28
/// <param name="configPath"></param>
29
/// <returns></returns>
30
public
static
ILog GetInstance(
string
configPath)
31
{
32
logHelper =
new
LogHelper(configPath);
33
34
return
log;
35
}
36
/// <summary>
37
/// 构造函数
38
/// </summary>
39
/// <param name="configPath"></param>
40
private
LogHelper(
string
configPath)
41
{
42
if
(!
string
.IsNullOrEmpty(configPath))
43
{
44
log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
45
log4net.Config.XmlConfigurator.Configure(
new
System.IO.FileInfo(configPath));
46
}
47
else
48
{
49
log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
50
}
51
}
52
53
}
54
}
通过封装类写日志的方法如下:
1
private
static
readonly
ILog logs = LogHelper.GetInstance();
//LogManager.GetLogger(typeof(TEST));
2
protected
void
Button2_Click(
object
sender, EventArgs e)
3
{
4
logs.Fatal(
"Excption:这里就是要提示的LOG信息"
);
5
}
转自:http://www.cnblogs.com/huanghai223/archive/2012/02/21/2361529.html
- Log4Net组件的应用详解
- Log4net日志记录组件的使用详解
- Log4Net详解(1)简单应用
- log4net的简单应用
- Log4net的简单应用
- log4net的配置详解
- log4net的配置详解
- log4net的配置详解
- 简要的Log4Net 应用配置
- 动态修改log4net组件的日志文件名
- Log4net开源组件的用法心得
- log4net详解
- log4net 详解
- 关于log4net的配置及应用
- log4net在windows服务程序的应用
- Log4net .NET 平台下的应用
- log4net日志的配置及简单应用
- Log4net udpAppender 和Log2Console的应用
- mysql存储过程详解
- think in java interview-高级开发人员面试宝典(四)
- jQuery中的Ajax应用
- poj 1459 Power Network(最大流)
- InputMethodManager 输入法
- Log4Net组件的应用详解
- android.support.v4.view.ViewPager in loader dalvik.system.PathClassLoader[/data/app/com.test.guide-2
- ant简明教程
- 离散化
- HTML5 新标签
- Xcode非ARC项目中设置部分文件ARC支持
- 【xinfanqie】非主流&&依偎相伴xp主题_8.7
- Windows操作系统产品名与内部版本号的对应(windows版本号)
- 请求的链式处理——职责链模式(一)