1、 概述:
一个好的项目,日志的记录是必不可少的。试想如果用户哪天用着系统突出弹出个“应用程序出错”的页面,那给用户的感觉可不太好了。您的面子上也过不去呀。可麻烦的还在后头,您可能根本就不知道错误发生在了什么地方,因为web.config文件将错误屏蔽掉了。所以日志文件是非常重要的。
2、 正文:
今天这里给大家介绍是一个第三方的日志组建:log4net.园子里已经有很多人讲过这个组件的用法了,也很全面。所以这里不再对这个组件进行过多的讲解,本文注重讲这个组件在多层架构中的应用。
首先呢我们把这个组件用类进行封装,截图如下:
(注:LogNet为封装后的类)
然后在添加配置文件:Log.config。这里我建议大家尽量把配置文件分离出来,也是便于后期的维护。这里的配置文件我要进行下简单的说明。由于我们的日志文件是放在一个单独的文件夹下,而且是根据日期来生成日志文件的,所以这里的配置要稍微注意下。核心代码如下:
1<log4net>
2
3 <root>
4
5 <level value="WARN" />
6
7 <appender-ref ref="RollingLogFileAppender" />
8
9 </root>
10
11 <logger name="MyLog">
12
13 <level value="DEBUG"/>
14
15 </logger>
16
17 <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
18
19 <!--存放日志的路径-->
20
21 <param name="File" value="LogFiles"""/>
22
23 <!--日志文件中追加-->
24
25 <param name="AppendToFile" value="true"/>
26
27 <!--日期文件是否固定不变-->
28
29 <param name="StaticLogFileName" value="false"/>
30
31 <!--最多保存多少天的记录-->
32
33 <param name="MaxSizeRollBackups" value="100" />
34
35 <!--日志名称-->
36
37 <param name="DatePattern" value="yyyy-MM-dd".log""/>
38
39 <!--日志根据日期滚动-->
40
41 <param name="RollingStyle" value="Date"/>
42
43 <layout type="log4net.Layout.PatternLayout">
44
45
46
47 <param name="Header" value="----------------------header-------------------------- " />
48
49 <param name="ConversionPattern" value="%n异常时间:%d%n异常位置:[%t] %-5p %c [%l] %n异常信息: %m%n"/>
50
51 <param name="Footer" value="----------------------footer-------------------------- " />
52
53 </layout>
54
55 <filter type="log4net.Filter.LevelRangeFilter">
56
57 <param name="LevelMin" value="DEBUG" />
58
59 <param name="LevelMax" value="FATAL" />
60
61 </filter>
62
63 </appender>
64
65 </log4net>
66
到这里,我们的日志就算配置完成了。接下就是在其他层中调用了。就这么简单?是的!如果您哪个项目想输入出日志,那直接添加LogNet.dll,然后进行方法调用就OK了,例如:
public void debug(string msg)
{
int i = 2, j = 0;
try
{
int m = i / j;
}
catch(Exception er)
{
MyLog.error(er.Message);
}
}
下面是生成的日志截图:
附:园中log4net详细介绍的文章
附:本文实例下载Demo