最近公司要上一个项目,要用到日志系统,刚好自己最近也在学习,今天终于有些结果了,所以在这里和大家分享一下。
1.首先,需要去http://logging.apache.org/log4net/这个网站下载一个log4net.dll(我在这里用的是1.2的),并引入 到自己的项目中。
2.需要建一个WEB的项目。
2.1 建一个demo的数据库,表如下:
1
CREATE
TABLE
[
dbo
]
.
[
Log
]
2
(
3
[
Id
]
[
int
]
IDENTITY
(
1
,
1
)
NOT
NULL
,
4
[
Date
]
[
datetime
]
NOT
NULL
,
5
[
Thread
]
[
varchar
]
(
255
)
NOT
NULL
,
6
[
Level
]
[
varchar
]
(
50
)
NOT
NULL
,
7
[
Logger
]
[
varchar
]
(
255
)
NOT
NULL
,
8
[
Message
]
[
varchar
]
(
4000
)
NOT
NULL
,
9
[
Exception
]
[
varchar
]
(
2000
)
NULL
10
)
2.2 在Web.Config中代码如下:
配置文件的相关代码
1
<?xml version="1.0"?>
2
<!--
3
Note: As an alternative to hand editing this file you can use the
4
web admin tool to configure settings for your application. Use
5
the Website->Asp.Net Configuration option in Visual Studio.
6
A full list of settings and comments can be found in
7
machine.config.comments usually located in
8
\Windows\Microsoft.Net\Framework\v2.x\Config
9
-->
10
<configuration>
11
<!--
12
注册一下
13
-->
14
<configSections>
15
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
16
</configSections>
17
<appSettings>
18
</appSettings>
19
<connectionStrings/>
20
<system.web>
21
<!--
22
Set compilation debug="true" to insert debugging
23
symbols into the compiled page. Because this
24
affects performance, set this value to true only
25
during development.
26
-->
27
<compilation debug="true"/>
28
<!--
29
The <authentication> section enables configuration
30
of the security authentication mode used by
31
ASP.NET to identify an incoming user.
32
-->
33
<authentication mode="Windows"/>
34
<!--
35
The <customErrors> section enables configuration
36
of what to do if/when an unhandled error occurs
37
during the execution of a request. Specifically,
38
it enables developers to configure html error pages
39
to be displayed in place of a error stack trace.
40
41
<customErrors mode="RemoteOnly" defaultRedirect="GenericErrorPage.htm">
42
<error statusCode="403" redirect="NoAccess.htm" />
43
<error statusCode="404" redirect="FileNotFound.htm" />
44
</customErrors>
45
-->
46
</system.web>
47
<log4net>
48
49
<root>
50
<level value="ALL" />
51
<appender-ref ref="ADONetAppender" />
52
</root>
53
54
<!--
55
<logger name="testApp.Logging">
56
<level value="ALL"/>
57
<appender-ref ref="ADONetAppender" />
58
59
</logger>
60
-->
61
<!--
62
相关操作代码
63
-->
64
<appender name="ADONetAppender" type="log4net.Appender.ADONetAppender">
65
<bufferSize value="0" />
66
<connectionType value="System.Data.SqlClient.SqlConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
67
<connectionString value="server=127.0.0.1;database=demo;user id=sa;password=sa" />
68
<commandText value="INSERT INTO Log ([Date],[Thread],[Level],[Logger],[Message],[Exception]) VALUES (@log_date, @thread, @log_level, @logger, @message, @exception)" />
69
<parameter>
70
<parameterName value="@log_date" />
71
<dbType value="DateTime" />
72
<layout type="log4net.Layout.RawTimeStampLayout" />
73
</parameter>
74
<parameter>
75
<parameterName value="@thread" />
76
<dbType value="String" />
77
<size value="255" />
78
<layout type="log4net.Layout.PatternLayout">
79
<conversionPattern value="%thread" />
80
</layout>
81
</parameter>
82
<parameter>
83
<parameterName value="@log_level" />
84
<dbType value="String" />
85
<size value="50" />
86
<layout type="log4net.Layout.PatternLayout">
87
<conversionPattern value="%level" />
88
</layout>
89
</parameter>
90
<parameter>
91
<parameterName value="@logger" />
92
<dbType value="String" />
93
<size value="255" />
94
<layout type="log4net.Layout.PatternLayout">
95
<conversionPattern value="%logger" />
96
</layout>
97
</parameter>
98
<parameter>
99
<parameterName value="@message" />
100
<dbType value="String" />
101
<size value="4000" />
102
<layout type="log4net.Layout.PatternLayout">
103
<conversionPattern value="%message" />
104
</layout>
105
</parameter>
106
<parameter>
107
<parameterName value="@exception" />
108
<dbType value="String" />
109
<size value="2000" />
110
<layout type="log4net.Layout.ExceptionLayout" />
111
</parameter>
112
</appender>
113
</log4net>
114
</configuration>
115
特别说明<bufferSize value="0" />,这是log信息记录的缓冲大小,(比如只有log信息记录达到0,
才会将log信息记录写入数据库,呵呵,这个本应该是个数字,可是为了显示结果,所以就该为0了,
实际开发的时候最好选一个合适的数值)
2.3在在Global.asax.cs中需要完成
void
Application_Start(
object
sender, EventArgs e)

{
// Code that runs on application startup
//读取配置文件信息
log4net.Config.DOMConfigurator.Configure();
}
最后,使用log建一个DEMO的类如下:
1
2
using
log4net;
3

4

/**/
/// <summary>
5
/// Summary description for MyLog
6
/// </summary>
7
public
class
MyLog
8

{
9
private static readonly log4net.ILog log = log4net.LogManager.GetLogger(typeof(MyLog));
10
public MyLog()
11
{
12
//
13
// TODO: Add constructor logic here
14
//
15
}
16
17
public static void LogInfo()
18
{
19
log.Info("写LOG的相关信息!");
20
}
21
22
public static void ErrorInfo()
23
{
24
log.Info("LOG错误");
25
}
26
}
说明:在这个项目中你写的方法要引用一下,要不数据库里没有结果,其数据库结果如下:
到这里就算大功告成了。