以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [分享]foxtable中使用log4net  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=40515)

--  作者:lxl
--  发布时间:2013/9/22 15:33:00
--  [分享]foxtable中使用log4net
 

有一段时间没上论坛了。

今天正好有空,想写点什么,却发现对于Foxtable我已经变成一个新手了。想来想去,还是介绍一下怎么在foxtable里面使用log4net吧。

log4net是比较有名的开源日志组件,它可以帮助程序员将日志信息输出到各种目标(控制台、文件、数据库、发送邮件等)。比如记录一些关键操作信息到数据库,方便管理人员的跟踪。也可以在程序发生异常时,把异常信息记录到文件,或者(并且)发送邮件通知开发人员。

写代码时,不需要考虑日志的输出目标,具体是写文件还是发邮件是在配置文件中进行配置,程序即使在运行中,也可以修改配置,并立即生效。附件的配置只记录txt文件,其他类型输出的配置可以在网上找到,或者阅读官方说明文档。

Log4net使用比较简单。例如:

?  记录普通信息:

mylogger.Info("用户xxx登陆系统")

?  记录调试信息

mylogger.Debug("变量a的值为" + a)

?  记录异常信息

mylogger.Error("程序错误", ex);

ex。为捕获的异常。关于捕获异常,见:http://www.foxtable.com/help/topics/2070.htm

 

上面的myLogger是一个变量,它代表一个记录器。记录器一共有5中记录方法,除了上面出现的3中,还有 WarnFatal

5种方法使用完全相同,第一个参数是要输出的字符串,第二个方法是可选的异常对象。 它们没有实质的区别,只是代表信息不同重要级别:Debug < Info < Warn < Error< Fetal 。把信息分成5个等级后,可以修改配置,让组件只记录重要的日志,而忽略不重要的日志,以提高性能。

       比如使用Debug方法输入开发人员关心的日志,项目交付后,修改配置。系统只记录Info级别以上的日志,并为Fetal级别的日志发送邮件。

       如果日志不是太多,为了简单,也只使用一种方式记录日志,而不考虑级别问题。例如所有日志通过info方法记录。

       Log4net可以使用多个记录器(例如每个模块使用一个记录器),并在配置文件里分别配置。下面演示的整个程序只使用一个记录器,即在全局代码里面声明一个记录器变量 mylogger,并在项目打开时初始化这个变量。

       下面列出详细步骤:

1、复制log4net.dllfoxtable.exe目录。(附件中提供,也可以去网上下载)。

2、复制配置文件log4net.configfoxtable.exe目录。

3、添加对log4.net的引用。

4、全局代码声明记录器: Dim myLogger As log4net.Ilog

5、项目Initialize事件初始化记录器:

log4net.Config.XmlConfigurator.Configure(new System.IO.FileInfo("log4net.config"))  \'读取配置文件

myLogger = log4net.LogManager.GetLogger("loggerName")

 

这里的log4net.config对应步骤2对应的配置文件名。loggerName对应记录器名称。由于我们整个程序只使用了一个记录器,并且不会再配置中单独配置这个记录器,所以名字可以随意取。

6、命令窗口测试myLogger对象:

mylogger.Info("记录日志")

mylogger.Info ("异常测试:",new Exception("12345"))

检查一下foxtable.exe目录,会发现多出一个logs文件夹,里面则是生成的日志文件。

 

这里的配置文件和输出文件都在foxtable.exe目录。对于发布后的程序foxtable.exe和项目文件在同一目录,但是对于未发布的项目,如果想Log4net的配置和输出在项目文件目录下,则需要对上面某几个不步骤做一些调整。

 

2、复制配置文件log4net.config到目录文件夹。

5 配置文件相对路径"log4net.config" 修改为拼接的绝对路径 ProjectPath & "log4net.config"

 

如此,配置文件则改为项目文件目录了。

如果日志输出方式选择文件方式,则还需要在log4net.config中修改文件输出路径。可以将此输出路径写死为项目文件夹,如果感觉在配置文件里面把输出路径写死不太好,可以在第5步加载配置前,用代码读文件,替换字符串的方式修改配置文件。保存后再加载修改后的配置文件。(其实log4net 有加载配置文件后,直接修改配置对象的方法,这里不做介绍)

 

 

只有几行代码,我就不传示例项目了。


 下载信息  [文件大小:   下载次数: ]
点击浏览该文件:log4net.rar
[此贴子已经被作者于2013-9-22 15:39:18编辑过]

--  作者:Bin
--  发布时间:2013/9/22 15:38:00
--  
顶一下!呵呵,狐表自身有日志.一般情况下就不需要使用这个了. log4net确实是个好东西一直都在用它.
--  作者:lsy
--  发布时间:2013/9/22 15:41:00
--  

顶。

 


--  作者:狐狸爸爸
--  发布时间:2013/9/22 15:42:00
--  

呵呵,顶lxl版主。

 

图片点击可在新窗口打开查看


--  作者:lxl
--  发布时间:2013/9/22 15:45:00
--  
以下是引用Bin在2013-9-22 15:38:00的发言:
顶一下!呵呵,狐表自身有日志.一般情况下就不需要使用这个了. log4net确实是个好东西一直都在用它.

嗯,狐表的日志也简单好用。

log4net麻烦点,但是强在只修改配置,不修改代码,就能把文件记录的方式改成数据库记录,或者异常的时候发邮件。


--  作者:程兴刚
--  发布时间:2013/9/22 16:08:00
--  
顶!
--  作者:nothing
--  发布时间:2013/9/22 20:50:00
--  
收藏起来慢慢体会
--  作者:不倒的翁
--  发布时间:2013/9/22 22:08:00
--  
 顶!
--  作者:有点甜
--  发布时间:2013/9/22 22:46:00
--  
 楼主应该是写web的吧?