所以我们已经讨论过在我的工作地点传递日志,我想知道你们中的一些人是否可以给我一些关于你的方法的想法?
通常我们的场景是,根本没有日志记录,主要是.NET应用程序,winforms/WPF客户端通过Web服务或直接转发到数据库.
那么,真正的问题是,你会在哪里记录什么?目前我们有用户报告错误消息 - 所以我会假设日志启动/关闭,例外......
你接受它来调用Web服务或数据库吗?页面加载?
你如何很好地了解当时用户想要做什么?
最好是一路走来并在多次尝试/天内记录所有内容,或者只记录您需要的内容(给定hdd便宜).
我想这是几个问题,但我想更多地了解大型商店的实际操作是什么!
记录的关键是良好的规划.我建议您查看企业库异常和日志记录应用程序块(http://msdn.microsoft.com/en-us/library/cc467894.aspx).有一点学习曲线,但它确实很有效.我目前支持的方法是定义4个优先级.4 =未处理的异常(事件日志中的错误),3 =处理的异常(事件日志中的警告),2 =访问外部资源,例如webservice,db或大型机系统(事件日志中的信息),1 =详细/其他感兴趣的(事件日志中的信息).
使用应用程序块,可以很容易地调整您想要记录的优先级.所以在开发过程中你会记录所有内容,但是当你在生产中获得一个稳定的系统时,你可能只对未处理的异常和可能处理的异常感兴趣.
更新:为清楚起见,我建议您登录winform/wpf应用程序和Web服务.在Web场景中,我在过去遇到过一些问题,很难将客户端上的错误与应用服务器联系起来.主要是因为通过webservices的任何错误都被包装为SOAP异常.我不记得我的头脑,但我认为如果您使用自定义异常处理程序(它是企业库的一部分),您可以将数据添加到异常,例如来自应用服务器的异常的handlinginstance id.通过使用LogParser,可以更轻松地将客户端上的异常绑定到应用程序框(http://www.microsoft.com/downloads/details.aspx?FamilyID=890cd06b-abf8-4c25-91b2-f8d975cf8c07&displaylang=en) .
第二次更新:我还想为每个不同的事件分配一个单独的事件ID,并在源代码管理下的文本文件或电子表格中跟踪它.是的,这很痛苦,但如果你有幸让一个IT团队在生产中管理你的系统,我发现他们倾向于期望不同的事件有不同的事件ID.
作为管理员,我非常感谢能够记录所有日志记录但跟踪日志的事件日志(最好是他们自己的,否则是应用程序日志)的应用程序.通过记录到事件日志,您更有可能在管理人员成为主要问题之前找到并解决警告或错误(如果这是他们可以解决的问题),或者允许他们联系与开发人员一起,他们可以使用跟踪日志来进一步解决问题.
我现在支持自定义.NET应用程序的最大痛点是来自同一供应商的8个不同的应用程序(一些控制台应用程序,一些winforms和一些Web).他们都没有登录到事件日志,他们都有自己的自定义日志文件.但对于所有winforms和控制台应用程序,它们在文件运行时保持打开状态,因此我无法监视它是否存在问题.此外,日志的编写方式略有不同,因此我必须稍微解析它们才能获得有用的信息.
这迫使我监视应用程序的外观(它是在它活动的端口上响应,进程工作集是否过高等等),而不是应用程序的状态.
请考虑部署后维护应用程序的人员并提供他们可以使用的日志记录.谢谢!