Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/280.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python日志记录-logrotate选项_Python_Logging_Multiprocessing_Logrotate - Fatal编程技术网

Python日志记录-logrotate选项

Python日志记录-logrotate选项,python,logging,multiprocessing,logrotate,Python,Logging,Multiprocessing,Logrotate,我正在尝试使用logrotate为多进程python服务旋转日志。以下哪种组合常用(正确和安全) WatchedFileHandler+logrotate和create选项 或 FileHandler+logrotate和copytruncate选项 选项1似乎用于openstack nova和glance项目。我没有看到使用选项2。选项2是否能按预期工作?。当用于多进程应用程序时,这些方法是否有任何缺点?我建议使用Python自己的日志循环来获得最佳集成。唯一的缺点是您有一个额外的位置来配

我正在尝试使用logrotate为多进程python服务旋转日志。以下哪种组合常用(正确和安全)

  • WatchedFileHandler+logrotate和create选项

  • FileHandler+logrotate和copytruncate选项


选项1似乎用于openstack nova和glance项目。我没有看到使用选项2。选项2是否能按预期工作?。当用于多进程应用程序时,这些方法是否有任何缺点?

我建议使用Python自己的日志循环来获得最佳集成。唯一的缺点是您有一个额外的位置来配置详细信息。

因为
WatchedFileHandler
是专门为与外部旋转工具(如
logrotate
)一起使用而提供的,我建议使用它(选项1)。为什么你认为你需要选择2


在多进程环境中,每个进程都会写入自己的日志,因此不会出现任何问题。但是,进程不应共享日志文件。

RotatingFileHandler将无法处理共享同一文件的多个进程。我不想使用SocketFileHandler和SyslogFileHandler之类的网络记录器。关于选项2,我试图了解这些方法(尤其是copytruncate)的优缺点。如果多个进程共享同一个日志文件,可能会出现哪些问题?像redis这样的服务,同一台机器上运行多个相同redis实例,难道不使用这种方法吗?如果我错了,请纠正我。多进程共享文件-有关更多信息,请参阅文档:-无论是否使用logrotate,这样做都可能导致意外行为。