2010-01-04 101 views
4

在我们的企业中,我们有许多应用程序将活动记录到文本文件以进行诊断。一般来说,如果某件事失败或中断,会发送一封电子邮件通知来通知我们的问题团队此外,我们还有一个监控应用程序,当应用程序的闲置时间超过预期时间时,会通过电子邮件通知我们的团队。我们面临的问题是日志已经转化为噪音,这意味着他们无法提供关于失败和成功的快速信息。我目前正在探索针对我们企业中应用程序的通用体系结构的解决方案,这引起了我的问题:“嘈杂”日志记录问题

什么是一些常见的方法,技术甚至可能提供简洁的日志信息的框架可见和可读?

回答

5

Log4j和其他日志框架提供日志级别,在那里你与每个日志语句中指定优先级的概念。然后在运行时设置日志文件本身的级别 - 只有具有该优先级或更高优先级的日志语句才能通过。因此,例如,您可以将生产系统设置为只记录WARN或ERROR级别的消息,而您的开发环境可以设置为在DEBUG或更高级别上记录任何内容。

这是一个不错的解决方案,因为它不需要对代码进行任何更改(如为每个新版本添加/删除日志语句),并且可以在需要执行某些操作时轻松进行重新配置(临时)具体问题。

如果您的系统正在使用的.NET架构,有log4j的叫log4net的的端口,你可以使用(虽然很明显,替换现有的系统需要更改代码)。然而,这个问题涉及到一般的设计原则,而不是关于如何处理现有的代码库,所以我认为这个答案就足够了。

编辑:由于您有使用全新框架的豪华感,this page有一个备选列表,尽管由于我自己在Java应用程序中的使用,我偏向log4j。

+0

是的,这绝对是一个代码更改。我即将编写一项新服务,并希望它能成为我希望团队今后实施的新日志记录方法的“良好”演示。 – Achilles 2010-01-04 16:01:10

0

小而快速的答案,因为它似乎是所有内部产品,创建一个数据库,并在其记录的一切,使这将查询该数据库所以它会给出更多的信息,只是一个电子邮件软件。

1

我电子书籍log4net。你可能需要在它周围建立自己的warpper(更加疯狂地使用)。

0

如果您想关联多个日志,Splunk绝对值得一看。

为了使您的应用程序日志数据更方便和易于理解,看看Gibraltar

直布罗陀包括功能强大的日志分析工具,可以帮助你看到的模式在成千上万的日志。虽然它包含自己的日志记录API,但它也可以与常用日志记录框架(例如log4net,NLog,ObjectGuy的DotNetLog以及.NET System.Diagnostics名称空间中的Trace/Console类)一起使用。