Foxtable(狐表)用户栏目专家坐堂 → [分享]foxtable中使用log4net


  共有4641人关注过本帖树形打印复制链接

主题:[分享]foxtable中使用log4net

帅哥哟,离线,有人找我吗?
lxl
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:858 积分:6071 威望:0 精华:19 注册:2008/9/1 9:13:00
[分享]foxtable中使用log4net  发帖心情 Post By:2013/9/22 15:33:00 [只看该作者]

 

有一段时间没上论坛了。

今天正好有空,想写点什么,却发现对于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
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2013/9/22 15:38:00 [只看该作者]

顶一下!呵呵,狐表自身有日志.一般情况下就不需要使用这个了. log4net确实是个好东西一直都在用它.

 回到顶部
帅哥哟,离线,有人找我吗?
lsy
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:5246 积分:33163 威望:0 精华:8 注册:2013/1/17 21:28:00
  发帖心情 Post By:2013/9/22 15:41:00 [只看该作者]

顶。

 


 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47448 积分:251054 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2013/9/22 15:42:00 [只看该作者]

呵呵,顶lxl版主。

 

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


 回到顶部
帅哥哟,离线,有人找我吗?
lxl
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:858 积分:6071 威望:0 精华:19 注册:2008/9/1 9:13:00
  发帖心情 Post By:2013/9/22 15:45:00 [只看该作者]

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

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

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


 回到顶部
帅哥哟,离线,有人找我吗?
程兴刚
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:超级版主 帖子:7235 积分:40574 威望:0 精华:16 注册:2008/8/31 23:23:00
  发帖心情 Post By:2013/9/22 16:08:00 [只看该作者]

顶!

 回到顶部
帅哥哟,离线,有人找我吗?
nothing
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:517 积分:3383 威望:0 精华:0 注册:2013/1/3 17:08:00
  发帖心情 Post By:2013/9/22 20:50:00 [只看该作者]

收藏起来慢慢体会

 回到顶部
帅哥哟,离线,有人找我吗?
不倒的翁
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:476 积分:3523 威望:0 精华:0 注册:2012/12/13 14:23:00
  发帖心情 Post By:2013/9/22 22:08:00 [只看该作者]

 顶!

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2013/9/22 22:46:00 [只看该作者]

 楼主应该是写web的吧?

 回到顶部