supervisord管理python进程,print内容不能输出到指定的日志文件

xiaohai 2025-10-05 22:45:11 33人围观 标签: Python  Supervisord 
简介用supervisord管理python进程,python程序中的print内容不能输出到指定的日志文件

在用supervisord管理python进程时,如果python程序中有pring语句,想把输出的内容写入到supervisord的日志文件中,却发现没有写入,这个问题的解决方法有如下两种:
1、使用logging代替print语句

import logging

# 配置logging模块
logging.basicConfig(level=logging.DEBUG,
                    format='%(asctime)s - %(name)s - %(levelname)s - %(message)s',
                    filename='/path/to/your/logfile.log',  # 与supervisord配置中指定的相同
                    filemode='a')  # 'a'表示追加模式

# 使用logging来记录信息
logging.info('这是一条信息')

2、在supervisor配置python进程command命令添加-u参数

command=/usr/bin/python -u py-file.py

-u 参数用于强制 Python 程序的标准输出(stdout)不通过缓存直接打印到屏幕,与标准错误(stderr)的输出机制一致。默认情况下,stdout 有缓存机制,需要积累到一定量或遇到换行才会显示输出,而 stderr 是无缓存的,即时输出。