1

我希望启动 Python 程序的多个实例(进程),并且希望每个实例都写入自己的日志文件。

这些过程将至少每天重新启动一次。

所以我到达了以下代码。

logHandler = TimedRotatingFileHandler(os.path.join(os.path.dirname(sys.argv[0]),'logs/LogFile_'+str(os.getpid())+'.log'),when="midnight", backupCount=7)
  1. 此代码是否会为每个 PID 维护 7 个备份?
  2. 有没有更好的方法来分割它,这样我的磁盘就不会被无用的文件填满?假设 PID 在几个月内对于进程来说可能是唯一的。
  3. 有没有更好的方法来做到这一点?

我最理想的情况是维护仅与 1 周有关的日志。这可以使用 TimeRotatingFileHander 来完成,而无需编写单独的 Purge/Delete 脚本吗?

4

1 回答 1

3
  1. 是的,这将为每个唯一的日志路径维护 7 个备份,或一周的日志。
  2. 轮换文件处理程序是限制日志的正确方法。
  3. 正如我所说,旋转文件处理程序是正确的方法。我想您可以使用 a RotatingFileHandler,但是当日志达到一定大小时它会旋转,而不是在特定时间,因此它不允许您指定一周的日志。

我对您如何保持给定进程的 pid 保持不变感到有些困惑,因为“进程将每天至少重新启动一次”。一个更强有力的保证每个进程都有一个唯一的日志路径是明确地提供它作为一个参数,例如python script --log-file="$(pwd)/logs/LogFileProcX.log"

于 2013-10-26T16:25:19.690 回答