【发布时间】:2016-09-21 00:36:28
【问题描述】:
(我已经搜索过这个问题,但没有找到重复的问题,但很高兴得到证明)。
我需要在一些 Python 代码中轮换日志。代码在 Windows (Server 2008 R2) 上运行。
最初我使用了TimedRotatingFileHandler(来自 Python 的 logging.handlers 包),但这并不像我们需要的那样工作,因为我知道它与多处理有关(subprocess.check_call 用于启动另一个应用程序)。
我查看了 ConcurrentLogHandler ,它看起来可能可以完成这项工作,但我有点担心它自 2013 年以来一直没有更新(尽管最近出现了一些问题)。
更新:open bug(自 2013 年起)表示 ConcurrentLogHandler 不适用于 Python 2.7/Windows。在记录时,代码只是挂起。
是否有我应该使用的最佳实践 Windows 解决方案?
【问题讨论】:
-
看起来您所指的错误是针对第 3 方包,而不是 Python 中包含的包
-
我找到了一个正在使用日志服务器来使其工作的人:huyng.com/posts/python-logging-from-multiple-processes
-
这可能也有用 - plumberjack.blogspot.com/2010/09/…
-
是的 - ConcurrentLogHandler 有一个错误,但 TimedRotatingFileHandler 似乎也有问题(请参阅bugs.python.org/issue4749 - 非常长的讨论,其中引用了其他问题)。我可能会继续使用队列来管理这个(水管工)。令人沮丧,因为我没有尝试从我的第二个进程中登录。
标签: python windows log-rotation