gpt4 book ai didi

logging - 在长期运行的进程中跟踪警告/错误的最佳实践是什么?

转载 作者:行者123 更新时间:2023-12-03 17:21:46 26 4
gpt4 key购买 nike

我们的团队有许多流程,我们手动运行,但可能会运行很多天。这些进程对大量实体(网页、数据库行、图像、文件等)执行各种操作。显然,有时会出现故障,我们必须设计或流程来优雅地处理这些故障并继续前进,这样整个工作才不会被拖垮。

根据所讨论的特定过程,失败的速率、严重性和紧迫性会有所不同。在某些情况下,我们会在发生罕见但重要的错误时发送电子邮件,在其他情况下,我们只是记录它并继续,等等。

问题是我们到处都有不同的错误处理代码,而且当我们“记录并继续”时,往往没有人回去阅读日志,所以没有人知道发生了什么问题。我们不能默认使用电子邮件解决所有问题,因为电子邮件太多了。

这些是长时间运行的进程,但不是守护进程,SNMP 或 Nagios 之类的东西可能感觉很合适。当然这是一个相当普遍的问题,但我似乎无法在网上找到很多解决方案。我听说人们在谈论使用 log4j(或其他类似的日志记录包)来登录数据库等,这似乎是朝着正确方向迈出的一步,但现在肯定有更复杂的解决方案...... ?我正在想象您的记录器将事件写入数据库,并且有一个类似 Nagios 的 Web 界面,可让您实时查看哪些进程发生了哪些错误以及为特定模式配置电子邮件警报等。

这样的事情存在吗?如果没有,您使用了哪些方法来成功处理类似问题?

(因为我们的大部分代码库都在 python 中是值得的,但我想这个想法的任何体面的实现在很大程度上都是非语言特定的,显然任何概念性的解决方案也是如此)。

更新:我刚刚花了一些时间查看 Chainsaw,这正是我正在寻找的东西,但我希望它是一个 web 应用程序而不是桌面应用程序,并具有警报功能。

更新:我刚刚发现 hoptoadappexceptional尽管两者都专门针对 Rails,但它们都在某种程度上符合我的想法。

最佳答案

好吧,似乎可行的解决方案是消化错误日志。每个晚上都有一个过程检查错误日志并将当天的错误/警告/等汇总起来,然后将它们放入电子邮件中。如果您愿意,您甚至可以按严重性和/或应用程序对它们进行分组。

最后,您每天只收到一封电子邮件,所有信息都触手可及。不是“快速”甚至优雅的解决方案,但从长远来看可能非常可行。

这也不提供任何实时选项。但是,您可以将其发展为更实时的解决方案。编写一个监控日志文件的更改然后根据最后一条错误消息触发一些规则的进程并不难。解析变得棘手。 ;) 祝你好运。

关于logging - 在长期运行的进程中跟踪警告/错误的最佳实践是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/668182/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com