我们已经编写了至少9个并行进程的应用程序。所有进程都会生成大量日志信息。
目前,我们正在使用Python的QueueHandler
将所有日志合并到一个文件中。不幸的是,这有时会导致非常混乱的文件,这些文件很难阅读(这使得很难准确地跟踪一个线程中正在发生的事情)。
您认为将所有邮件分离为专用文件是可行的选择吗?或者,这会使事情变得更加混乱,因为文件数量很多吗?
在为多线程/多线程应用程序编写日志文件时,您的一般经验是什么?
发布于 2012-12-08 00:47:27
用进程id作为标识符标记每一行日志,然后在查看日志时使用grep。或者其他的东西,除了过程标识。
发布于 2012-12-08 00:45:58
我更喜欢让每个进程日志到它自己的文件,然后在需要/需要时将它们合并在一起。这样,我就不必对一个日志文件进行并发/争用。作为单独的进程,日志事件通常是不相交的。
就性能而言,这是处理它的最有效的方法。加入日志文件通常是浪费的,因为没有人阅读其中的大部分,我会坚持按需这样做。
如果您主要使用日志文件作为调试工具,而不是审核目的,并且它有助于您使代码工作或调试多线程问题,那么日志文件的连接可能会导致事件顺序的丢失,除非您可以使用可接受的高分辨率计时器将其包含在日志事件中。然而,您最安全的选择是登录到某种类型的日志服务,为您同步。
发布于 2012-12-08 11:41:46
这取决于您的应用程序,以及您如何分析日志。考虑一下高端服务器的极端情况,在这种情况下,许多线程都在进行交互。在日志时将其保存到单个队列中,并按时间顺序写入文件,可以相当准确地确定发生在其中的订单事件,这是一种解决方案,但更好的解决方案是拥有多个日志,让每个日志事件记录滴答时间,然后使用splunk执行分析。
https://softwareengineering.stackexchange.com/questions/178704
复制相似问题