VB.Net如何使用log4net
2012-06-10 08:30
429 查看
VB.Net如何使用log4net
2009-09-02 13:53
2009-09-02 13:53
转自:http://journeyboy.blog.sohu.com/35181106.html 一个成熟的系统,绝不能缺少Log功能。 与其自己费劲设计,不如使用现成的。 对于.Net环境开发,开源的log4net就是不错的选择。 log4net是从java下的log工具 log4j发展过来的,顾名思义,log4net就是给.net用的。 log4net的官方简介如下: log4net is a tool to help the programmer output log statements to a variety of output targets. log4net is a port of the excellent log4j framework to the .NET runtime. We have kept the framework similar in spirit to the original log4j while taking advantage of new features in the .NET runtime. Feature列表如下: Support for multiple frameworks Output to multiple logging targets Hierarchical logging architecture XML Configuration Dynamic Configuration Logging Context Proven architecture Modular and extensible design High performance with flexibility log4net能够输出很多种类型的log信息,如下:
废话不说,整个VB.Net的例子来看看怎么用。 1、 建立一个名为"TestLog4Net"的Windows Application工程 2、 添加对log4net.dll的引用 3、 打开"AssemblyInfo.vb"文件,在文件中添加下列代码: <Assembly: log4net.Config.XmlConfiguratorAttribute(Watch:=True)> 这句话表明程序会监视配置文件的变化。一旦配置文件发生变化,相应的输出也会有所变化。 4、 打开"Form1.vb"文件,在文件开头添加下列代码: Imports log4net 5、 打开"Form1.vb"文件,找到下列代码: Public Class Form1 Inherits System.Windows.Forms.Form 然后在这个类之内找个地方添加下列代码 Private Shared ReadOnly Log As log4net.ILog = _ log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType) 这行代码利用反射,可以自己设定当前上下文信息作为参数。 6、 在窗口上添加一个按钮"Button1",双击进入事件处理编写,如下: Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click With Log .Debug("Button1_Click Debug") .Error("Button1_Click Error") .Fatal("Button1_Click Fatal") .Info("Button1_Click Info") End With End Sub 7、 运行程序,可以看到什么Log文件也没有,嗯,这就对了。我的目的是让系统建立bin目录。 8 进入bin目录,创建文件"TestLog4Net.exe.config",内容如下: <?xml version="1.0" encoding="utf-8" ?> <configuration> <!-- Register a section handler for the log4net section --> <configSections> <section name="log4net" type="System.Configuration.IgnoreSectionHandler" /> </configSections> <log4net> <!-- the rollingFile Appender, which could save log to File ,and according to the configuration, when the file reach 100kb, it will save the old file to the TestLog4Net.log.1, and the TestLog4Net.log.2 and that's all--> <appender name="RollingFile" type="log4net.Appender.RollingFileAppender"> <file value="TestLog4Net.log " /> <appendToFile value="true" /> <maximumFileSize value="100KB" /> <maxSizeRollBackups value="2" /> <layout type=" log4net.Layout.PatternLayout"> <conversionPattern value="%level %date %logger - %message %t%n" /> </layout> </appender> <root> <level value="DEBUG" /> <appender-ref ref="RollingFile" /> </root> </log4net> </configuration> 在此文件中,有如下配置: <file value="TestLog4Net.log" />指明了输出的log文件名称为"TestLog4Net.log"。 <maximumFileSize value="100KB" />指明了输出的log文件最大长度为100KB。 <conversionPattern value="%level %date %logger - %message %t%n" />指明了输出内容的格式,下面会有展示。 <level value="DEBUG" />指明当前是DEBUG模式,如果改为<level value="RELEASE" />,则不会输出log内容。 9、 再次运行程序,点击Button1,在bin目录下出现log文件"TestLog4Net.net",内容如下: DEBUG 2006-08-12 18:02:40,753 TestLog4Net.Form1 - Button1_Click Debug 2396 ERROR 2006-08-12 18:02:40,763 TestLog4Net.Form1 - Button1_Click Error 2396 FATAL 2006-08-12 18:02:40,763 TestLog4Net.Form1 - Button1_Click Fatal 2396 INFO 2006-08-12 18:02:40,763 TestLog4Net.Form1 - Button1_Click Info 2396 如果再点一次Button1,文件内容如下: DEBUG 2006-08-12 18:02:40,753 TestLog4Net.Form1 - Button1_Click Debug 2396 ERROR 2006-08-12 18:02:40,763 TestLog4Net.Form1 - Button1_Click Error 2396 FATAL 2006-08-12 18:02:40,763 TestLog4Net.Form1 - Button1_Click Fatal 2396 INFO 2006-08-12 18:02:40,763 TestLog4Net.Form1 - Button1_Click Info 2396 DEBUG 2006-08-12 18:03:53,508 TestLog4Net.Form1 - Button1_Click Debug 2396 ERROR 2006-08-12 18:03:53,508 TestLog4Net.Form1 - Button1_Click Error 2396 FATAL 2006-08-12 18:03:53,508 TestLog4Net.Form1 - Button1_Click Fatal 2396 INFO 2006-08-12 18:03:53,508 TestLog4Net.Form1 - Button1_Click Info 2396 10、例子到此为止。还有不明白?自己看log4net的FAQ吧。 |
相关文章推荐
- 如何使用vb.net多线程
- [VB.NET]请教高手:如何使用listview控件从缓冲区中一次性添加多条数据???
- VB.net使用httpWebRequest访问带cookie的网站时如何传递cookie值
- 如何在Vb.NET中使用带返回的函数作为委托?
- 如何使用VS2005的VB.net开发WinCE应用程序
- [VB.NET]各们,请问如何使用vb.net编写两个进程间消息通信的程序啊
- [VB.NET]如何在第二个窗体里使用第一个窗体的控件方法
- 如何实现VB.NET 打印控件的使用
- WinForm中如何使用Log4net
- [VB.NET]在VB.NET 2005中,如何创建Oracle的存储过程,以及如何来使用存储过程语句?
- 讲解在VB.NET中如何使用声明语句
- 如何使用log4net
- 如何使用webservice上传文件(vb.net版本 )
- vb.net如何使用HttpWebRequest模拟登陆带验证码的网站
- 如何使用log4net
- 傻瓜教程:asp.net(c#) 如何使用log4Net
- 开发人员在使用Aspose.Pdf for .NET时如何用C#和VB两种代码添加附件到PDF文档?
- 在VB.NET中如何使用多线程详细知识
- C#中如何使用VB.NET的My关键字
- 如何使用log4net