在整个企业中,我们有许多应用程序将活动记录到文本文件以用于诊断目的。通常,如果某些内容失败或中断,则会发送电子邮件通知以通知我们的团队出现问此外,我们还有一个监控应用程序,当应用程序的活动时间超过预期时,它会通过电子邮件通知我们的团队。我们面临的问题是日志已经转化为噪音,这意味着他们无法提供有关失败和成功的快速信息。我目前正在探索一个特定于我们企业中应用程序的一般架构的解决方案,这引出了我的问题:
有哪些常见的方法,技术甚至可能提供可以快速查看和阅读的简明日志信息的框架?
答案 0 :(得分:5)
Log4J和其他日志记录框架提供了日志级别的概念,您可以在其中为每个日志语句指定优先级。然后在运行时,您可以设置日志文件本身的级别 - 只有具有该优先级或更高优先级的日志语句才能通过。因此,例如,您可以将生产系统设置为仅记录WARN或ERROR级别的消息,而您的开发环境可以设置为以DEBUG或更高级别记录任何内容。
这是一个很好的解决方案,因为它不需要对代码进行任何更改(例如为每个新构建添加/删除日志语句),并且当您需要执行诸如调试特定内容之类的操作时,可以轻松地(临时)重新配置问题
如果您的系统使用.NET体系结构,则可以使用一个名为log4net的log4j端口(尽管显然,替换现有系统需要更改代码)。但是,这个问题询问了一般的设计原则,而不是如何处理现有的代码库,所以我认为这个答案就足够了。
编辑:由于您可以使用全新的框架,this page有一个备选列表,但由于我自己在Java应用程序中的使用,我对log4j很偏爱。
答案 1 :(得分:1)
我推荐log4net。您可能需要围绕它构建自己的包装器(使用起来更友好)。
答案 2 :(得分:0)
小而快速的答案,因为它似乎是所有内部产品,创建数据库并记录其中的所有内容,制作将查询该数据库的软件,以便它提供更多信息,只需要一封电子邮件。
答案 3 :(得分:0)
如果您想关联多个日志,Splunk绝对值得一看。
为了使您的应用程序日志数据更易于访问和易于理解,请查看Gibraltar。
Gibraltar包含强大的日志分析工具,可以帮助您查看数千个日志中的模式。虽然它包含自己的日志记录API,但它也适用于流行的日志框架,如log4net,NLog,ObjectGuy的DotNetLog以及.NET System.Diagnostics名称空间中的Trace / Console类。