浏览 5817 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2006-12-06
概述最近因为工作关系,开始转投C#阵营,基于公司的一个产品作二次开发。公司产品的现状让我有点诧异,居然没有记录日志,如果程序报错,就会弹出一个可恶的对话框。除了调试源码没有任何办法知道是什么原因引起的。
C#的同事建议写一个简单的日志API,可能因为JAVA的开源精神的影响,还是决定采用开源组件,为什么要重复造轮子呢? 哈哈,于是决定引入log4net组件,本篇文章只是记录一下使用log4net的QuickStart,并提出遇到的一些问题。 下载从logging.apache.org/log4net/下载log4net组件。
添加引用在工程中添加log4net.dll动态库的引用。
配置log4net要配置log4net有多种方式,这里采用个人认为比较简单的方法,首先需要在AssemblyInfo.cs中添加如下代码块:
java 代码
上述代码表示log4net的配置文件名称为log4net.config,watch表示是否需要实时监听log4net.config配置文件的改变。接着需要添加log4net.config文件,配置相关参数,具体的参数含义和log4j很类似,这里就不详述了,下面是一个示例的配置文件:
java 代码
记录日志现在就可以在程序中使用log4net组件记录日志了,步骤如下:
java 代码
一点想法最困难的事情不是如何做,而是做什么。对于使用开源组件也是一样的道理,最困难的不是怎么样记录日志,而是在什么情况下记录什么。 有很多项目都五脏俱全,但是很多设施并没有起到真正的作用。比如日志,当出了问题的时候从日志中很快地判断问题所在区域,还是必须调试程序才能找到原因。 在哪些地方需要记录日志,使用什么级别,这才是最关键的问题。 待解决问题如果一个解决方案中包含一个或者多个Assembly,希望每个Assembly都可以使用log4net 记录日志,并记录到同一个文件? 如果按照JAVA的作法,在每个Assembly都使用如上同样的配置,最后所有的日志都会失效。去网上查的原因是log4net会锁住日志文件,可以通过repository来实现,但是具体如何实现呢?我还没有找到解决方案,目前只能一个解决方案包含一个单一的项目。 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2006-12-08
你的待解决问题方法:
<lockingModel type="log4net.Appender.FileAppender+MinimalLock" /> |
|
返回顶楼 | |
发表时间:2006-12-10
你的待解决问题方法: <lockingModel type="log4net.Appender.FileAppender+MinimalLock" /> 我试过这种方式,好像不行噢。 你的作法是这样的吗? 在每个Assembly中添加类似如上同样的配置? |
|
返回顶楼 | |