我想了解人们如何处理跟踪和登录实际应用程序的故事.以下是一些可能有助于解释您的答案的问题.
构架
你使用什么框架?
如果使用跟踪,是否使用Trace.Correlation.StartLogicalOperation?
您是手动编写此代码,还是使用某种形式的面向方面编程来执行此操作?小心共享代码片段?
您是否在跟踪源上提供任何形式的粒度?例如,WPF TraceSources允许您在不同级别配置它们:
听众
你使用什么日志输出?
如果使用文件,您使用滚动日志还是仅使用单个文件?如何使日志可供人们使用?
查看
您可以使用哪些工具查看日志?
如果要构建ASP.NET解决方案,是否还使用ASP.NET运行状况监视?您是否在运行状况监视器事件中包含跟踪输出?那么Trace.axd呢?
自定义性能计数器怎么样?
在这个帖子中,很多人都表示他们使用log4net.我是TraceSources的粉丝,想知道为什么使用log4net.
这就是我喜欢跟踪源的原因:
由于.NET框架在内部使用TraceSources,它也为我提供了一种配置跟踪的一致方法 - 使用log4net,我必须配置log4net以及TraceSources.
什么log4net给我TraceSources没有(或通过编写几个自定义TraceListener无法完成)?
好像是
在很大程度上是相同的,有一个值得注意的例外,就是在发布配置中编译了Debug使用.
你何时会使用一个而不是另一个?到目前为止我唯一能解决的问题就是你使用Debug类来生成只在调试配置中看到的输出,而Trace将保留在发布配置中,但这并没有真正回答我的头.
如果您要对代码进行检测,为什么要使用Debug,因为可以在不重新编译的情况下关闭Trace?
有许多不同的日志库可供选择,每个都有自己的一套怪癖和优点.(.Net示例:log4net,System.Diagnostics.TraceSource,nLog等)
自然的倾向是抽象出那些怪癖并使用伐木立面.(示例:Castle.Services.Logging,Common.Logging,Simple Logging Facade)这样,如果您使用的给定日志框架变得陈旧,或者另一个日常框架变得流行,您可以换掉实现并离开代码没有动过.
但是有多个伐木外墙可供选择.鉴于许多不同的日志记录实现的答案是抽象,为什么不使用日志门面?如果这听起来很荒谬,是什么让它比原始的伐木门面更荒谬?是什么让一个额外的抽象层在日志框架之上成为神奇的数字?
我正在寻找一种新的统一日志记录解决方案,用于我们的新系列产品,我想看看Stack Overflow上的一些人的想法.我们需要记录各种应用程序:ASP .net,Windows服务,Web服务,wpf应用程序等.我们只是一个Windows商店.
我们对日志记录解决方案的一些要求包括:
1)日志文件管理
- Ability to split files up over a certain size
- Ability to auto archive/delete after certain period of time
Run Code Online (Sandbox Code Playgroud)
2)能够发送关于记录的某些类型的消息的电子邮件(例如错误)
3)能够将消息写入Windows事件日志
- We need to be able to specify where it's being written in the event log.
It would also be nice if it would automatically create the event log source if it does exist.
Run Code Online (Sandbox Code Playgroud)
我已经开始关注nLog,windows trace和log4net.我不仅限于这3只,只是在搜索时出现了很多.
现在Silverlight 2终于出货了.我想知道是否有人为它设置了任何日志框架,可能是企业库日志或log4net?我很有兴趣可以执行跟踪客户端并将消息记录到服务器.
到目前为止,我已经找到了唯一的项目是堵塞在CodeProject上.有没有人用过这个?你对此有何看法?
我正在寻找一个日志框架,似乎log4net非常受欢迎.最后一个版本是2年多前发布的.它尚未针对.net 3.0或3.5甚至是visual studio 2008进行更新.是否有更新的内容(除了entlib之外)我应该考虑一下?