系统版本:CentOS 7.9.2009 x86_64(Py3.7.9)面板版本:9.2.0
python项目以命令行执行,出现的情况与这个帖子几乎一模一样。
【待反馈】python项目日志切割异常 - BUG提交 - 宝塔面板论坛 (bt.cn)
1、以命令行执行,切割执行提示“uwsgi.log已丢失”,但显示切割成功,然而实际上并没有进行切割。
2、在项目目录中添加一个空白的uwsgi.log文件后再次手动执行任务面板,显示切割成功,history备份目录下也新增了文件,但是是一个空的_log.log文件。
自行排查下来是宝塔自己的pythonModal.py对于python项目类型判断有问题,导致默认日志文件都去找uwsgi.log了。
通过魔改的方式可以暂时解决问题,但请官方修改这个bug,以免影响进一步扩大。
问题源码定位
红字为魔改的部分
def for_split(self, logsplit, project):
"""日志切割方法调用
@author baozi <202-03-20>
@param:
logsplit ( LogSplit ): 日志切割方法,传入 pjanme:项目名称 sfile:日志文件路径 log_prefix:产生的日志文件前缀
project ( dict ): 项目内容
@return
"""
if project['project_config']["stype"] == "python":
log_file = project['project_config']["logpath"] + "/error.log"
logsplit(project["name"], log_file, project["name"])
elif project['project_config']["stype"] == "gunicorn":
log_file = project['project_config']["logpath"] + "/gunicorn_error.log"
logsplit(project["name"], log_file, project["name"] + "_error")
log_file2 = project['project_config']["logpath"] + "/gunicorn_acess.log"
logsplit(project["name"], log_file2, project["name"] + "_acess")
elif project['project_config']["stype"] == "uwsgi":
log_file = project['project_config']["logpath"] + "/uwsgi.log"
logsplit(project["name"], log_file, project["name"])
else:
log_file = project['project_config']["logpath"] + "/error.log"
logsplit(project["name"], log_file, project["name"])
|
|