护士站之log4net
2012-03-24 22:09 just doo it 阅读(238) 评论(0) 收藏 举报任何程序发布之后都会出现各种各样的错,此时调试程序时不可能像没发布时用开发工具那样调试,所以我们需要一种工具来生成程序的出错信息,将出错信息生成到txt文件。当客户向我们反映程序出错时,我们可以浏览txt的内容从而快速定位到程序的出错处。用这种方法我们可以方便地调试发布后的程序。在护士站我用log4net来记录程序的出错日记。
1、log4net是一个dll组件,下载后像一般的dll引用到程序中即可,引用后还要在webconfig中配置log4net的节点信息,配置信息如下所示
1 <configSections>
2 <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net"/>
3 </configSections>
4 <log4net>
5 <root>
6 <level value="ALL" />
7 <appender-ref ref="LogFileAppender" />
8 </root>
9 <logger name="DeBugLogger">
10 <level value="ALL"/>
11 <appender-ref ref="DeBugLogFileAppender" />
12 </logger>
13 <logger name="TimeLogger">
14 <level value="ALL"/>
15 <appender-ref ref="TimeLogFileAppender" />
16 </logger>
17 <appender name="DeBugLogFileAppender" type="log4net.Appender.FileAppender" >
18 <param name="File" value="log_debug.txt" />
19 <param name="AppendToFile" value="true" />
20 <layout type="log4net.Layout.PatternLayout">
21 <param name="ConversionPattern" value="[时间]%d [线程]%t [级别]%p [内容]%m%n"/>
22 </layout>
23 </appender>
24 <appender name="TimeLogFileAppender" type="log4net.Appender.FileAppender" >
25 <param name="File" value="log_time.txt" />
26 <param name="AppendToFile" value="true" />
27 <layout type="log4net.Layout.PatternLayout">
28 <param name="ConversionPattern" value="[时间]%d [内容]%m [线程]%t%n"/>
29 </layout>
30 </appender>
31 </log4net>
在这些配置信息中,主要要注意这点,<root>节点是默认的log4net对象,该对象会在程序中自动生成,如果你不想用到该默认对象,可以设置它的节点<appender-ref ref="LogFileAppender" /> ref的值为一个不存在的appender对象,这里我设置为LogFileAppender,而这个“LogFileAppender”在下面的<appender>节点中是不存在的,只存在DeBugLogFileAppender和TimeLogFileAppender,这两个名字都是自己定义的,喜欢写什么都行。最好的做法是不要用这个root对象,不然在log文件中会生成重复的信息。其他节点的意思网上有很多说明,这里不多说。
2、配置好log4net后,在程序中引用log4net对象就比较简单了,关键代码如下所示
1 ILog log_debug= LogManager.GetLogger("DeBugLogger"); //声明log4net对象
2 log_debug.Debug(e.Message + e.StackTrace); //调用log4net的函数记录出错信息
最后要注意的一点是必须要在Global.asax中初始化log4net对象
1 protected void Application_Start(object sender, EventArgs e)
2 {
3 log4net.Config.XmlConfigurator.Configure(); //初始化Log4net
4 }
浙公网安备 33010602011771号