|
|
1
9
我认为log4net正在为我做你列出的每一件事。 可插入的侦听器听起来像是附加器——有很多,事实上,我甚至破解了滚动日志文件,使其始终以.log结尾(用于文件关联),向电子邮件附加器添加了一个cc字段,最后为彩色控制台附加器调优了我最喜欢的值。 如果我可以如此大胆-我的彩色控制台幸福:
可定制的跟踪开关:log4net只提供致命的错误警告信息调试,以增加详细程度。我唯一真正错过的是审核谁做了什么日志记录。 可定制的配置:我使用一个在运行时加载的log4net.config文件(或者将一个日志写到c:\whining,我找不到配置)。
只是一大组跟踪监听器:很抱歉跳过那个-我相信你的话。 活动/作用域的相关性:您的意思是像每个文件(读类)都得到自己的命名日志一样,它可以有单独的日志级别阈值。事实上,即使在一个类中,您也可以分段日志记录(事实上,这可能已经变得太多了…) 在类文件中:
服务跟踪查看器:在log4net.config中:
所有这些都可以在app.config/web.config中配置:我不知道,也许这在ASP.NET中是一件好事,但是当制作富客户端bean计数应用程序时,我喜欢一个单独的配置文件。 这里的一切只是我自己的小技巧。 HTH -迈克 |
|
|
2
55
在早期,.NET框架中的(.NET 1.0)跟踪非常有限。 例如,tracesource分区直到.NET 2.0才出现,而您只有四个级别(错误、警告、信息、详细信息),但是如果需要,您可以使用六个布尔开关进行分区。 Log4J在Java中很受欢迎,因此得到了对.NET端口的大量支持,一旦它流行起来,它就一直保持这种方式,即使人们甚至没有正确地使用它(例如,将它封装在单日志记录器中并失去它的主要特征)。 不过,我认为log4net和其他框架(例如nlog、common.log g in g,甚至entlib)从一开始就实现了自己的日志系统,甚至改变了日志语句的编写方式。 我更愿意看到努力,特别是自从.NET 2.0投入到扩展.NET中已有内容的坚实基础中。对于一个确实扩展了已有内容的项目,请看一下CodePlex上的基本诊断项目。( http://essentialdiagnostics.codeplex.com/ ) log4net的一些优势:
缺点(与System.Diagnostics相比):
|
|
|
3
4
使用tracesources而不是log4net的另一个原因是跟踪本身: log4net只能用于日志记录(消息),但是如何跟踪一个对象(同时跟踪多个信息)? 当然,log4net实现了很多侦听器,但是我需要所有这些吗? 在大多数情况下不是。 如果我需要一个特别的倾听者,实现我自己的倾听者就不难了,不是吗? 例如,我需要一个侦听器跟踪到数据库中(不仅是消息,而且是不同的信息字符串、int等同时)。 我是对的吗? |
|
|
4
3
我喜欢使用log4net而不是跟踪目标之一的原因是使用log4net,我可以独立地检测应用程序的不同层(数据访问、服务、业务逻辑等)和不同的子系统(身份验证、处理等),并独立地打开/关闭每个子系统的日志记录。 这种灵活性允许我为一个子系统配置详细的日志记录,而不必为整个系统打开消防软管。 跟踪类[例如traceInformation()]上提供的静态方法没有提供任何方法来指定日志记录来自哪个子系统,因此编写自己的traceListener并不容易提供这种方法。 另一个原因是性能——我的应用程序中有一部分可能每秒记录几千条消息。log4net的开销很低。相比之下,上次我查看它时,日志应用程序块为记录的每一条消息重新准备了XML配置,这使得块非常沉重和缓慢。 |
|
|
5
0
虽然我只知道log4net的工作方式,但是对于那些使用log4j的人来说,使用该框架的一个明显的好处就是立即熟悉它。 另一个小的好处是,使用log4net测试驱动日志非常简单;记录器实现log4net.ilog。同样,我不熟悉微软的解决方案,但我想知道如果不先向System.Diagnostics.Trace类编写外观,如何做到这一点。 通过粗略地查看跟踪源文档,我找不到与布局等效的文档,并且有兴趣知道是否存在这样的等效文档。PatternLayout对于使用诸如日期戳、线程信息、日志上下文等常见数据格式化日志条目非常方便。log4net PatternLayout文档: http://logging.apache.org/log4net/release/sdk/log4net.Layout.PatternLayout.html 此外,考虑到将扩展写入日志框架可能是一个经典的“元问题”,log4net确实为表带来了一个可插入侦听器等价物的大列表。 附件列表: http://logging.apache.org/log4net/release/config-examples.html |
|
|
JPC · 为什么输入代码块时没有调用事件? 8 年前 |
|
|
MHeydt · 使用trace在R中编辑函数? 8 年前 |
|
|
SummonersRift · 收集MPI跟踪 8 年前 |
|
|
jstuardo · ASP的跟踪。NET应用程序在生产服务器中不工作 8 年前 |
|
|
Uzair Chughtai · SIM卡APDU解析工具 8 年前 |
|
|
Dina · 从基于文件的跟踪会话移动到实时会话 10 年前 |
|
|
Shane Courtrille · WCF不会跟踪非soap回复消息 10 年前 |