我想了解人们如何处理跟踪和登录实际应用程序的故事.以下是一些可能有助于解释您的答案的问题.
构架
你使用什么框架?
如果使用跟踪,是否使用Trace.Correlation.StartLogicalOperation?
您是手动编写此代码,还是使用某种形式的面向方面编程来执行此操作?小心共享代码片段?
您是否在跟踪源上提供任何形式的粒度?例如,WPF TraceSources允许您在不同级别配置它们:
听众
你使用什么日志输出?
如果使用文件,您使用滚动日志还是仅使用单个文件?如何使日志可供人们使用?
查看
您可以使用哪些工具查看日志?
如果要构建ASP.NET解决方案,是否还使用ASP.NET运行状况监视?您是否在运行状况监视器事件中包含跟踪输出?那么Trace.axd呢?
自定义性能计数器怎么样?
背景: 我继承了一个Web应用程序,旨在创建本地和远程设备之间的即时连接.最近有大量的移动部件:应用程序本身发生了重大变化; 开发工具链刚刚更新; 本地和远程设备都已"修改"以支持这些变化.
好的一面是它有一个合理的日志记录系统,可以将调试消息写入文件,它将同时记录到文件和实时用户屏幕.我有机会重新使用整个日志/调试机制.
例子:
问题:您作为开发人员或被视为消费者的哪些最佳实践可以生成有用的日志和调试?
编辑:到目前为止很多有用的建议,谢谢!为了澄清:我更感兴趣的是什么日志:内容,格式等 .--而这样做的原因-不是具体的工具.
您看到的最好的日志对他们最有帮助的是什么?
谢谢你的帮助!
我们已经开始使用第三方平台(GigaSpaces)来帮助我们进行分布式计算.我们现在要解决的一个主要问题是如何在这个分布式环境中管理我们的日志文件.我们目前有以下设置.
我们的平台分布在8台机器上.在每台机器上,我们有12-15个进程,使用java.util.logging记录分离日志文件.在这个平台上,我们有自己的应用程序,使用log4j和日志来分隔文件.我们还将stdout重定向到一个单独的文件以捕获线程转储等.
这导致大约200个不同的日志文件.
截至目前,我们没有工具来协助管理这些文件.在下列情况下,这会给我们带来严重的麻烦.
我们事先没有在出现问题的过程中知道故障排除.在这种情况下,我们当前使用ssh登录每台机器并开始使用grep.
通过定期检查日志中的任何异常情况来尝试主动.在这种情况下,我们当前还登录到所有计算机并使用less和查看不同的日志tail.
设置警报.我们希望在超过阈值的事件上设置警报.这看起来很痛苦,需要检查200个日志文件.
今天我们每秒只有大约5个日志事件,但随着我们将越来越多的代码迁移到新平台,这将会增加.
我想问社群以下问题.
非常感谢.
更新
我们最终评估了Splunk的试用版.我们对它的工作方式非常满意并决定购买它.易于设置,快速搜索和技术倾向的大量功能.我可以推荐任何类似情况的人来检查一下.