Python timedrotingfilehandler PID在日志文件名中的最佳方法

2024-04-19 06:24:35 发布

您现在位置:Python中文网/ 问答频道 /正文

我希望启动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. 有更好的方法吗?在

我理想的情况是只保留一周的日志。是否可以使用TimeRotatingFileHander而不必编写单独的清除/删除脚本?在


Tags: 文件path实例方法代码程序进程os
1条回答
网友
1楼 · 发布于 2024-04-19 06:24:35
  1. 是的,这将为每个唯一的日志路径维护7个备份或一周的日志。在
  2. 旋转文件处理程序是限制日志的正确方法。在
  3. 正如我所说,旋转文件处理程序是正确的方法。我想您可以使用RotatingFileHandler,但是当日志达到某个大小时,它会旋转,而不是在某个特定的时间,因此它不允许您指定一周的日志。在

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

相关问题 更多 >