【待反馈】python项目使用自定义命令启动导致日志切割找不
本帖最后由 宝塔用户_mwxxim 于 2024-10-4 12:47 编辑错误处:
|---Python项目的日志分割任务出错
=================已完成所有日志切割任务==================
----------------------------------------------------------------------------
★ Successful
----------------------------------------------------------------------------
Traceback (most recent call last):
File "/www/server/panel/script/run_log_split.py", line 137, in main
for_split_func(logsplit, project)
File "class/projectModel/pythonModel.py", line 3256, in for_split
logsplit(project["name"], log_file, project["name"])
File "/www/server/panel/script/run_log_split.py", line 100, in __call__
if self.stype == 'size' and os.path.getsize(sfile) < self.log_size:
File "/www/server/panel/pyenv/lib/python3.7/genericpath.py", line 50, in getsize
return os.stat(filename).st_size
FileNotFoundError: No such file or directory: '/www/wwwlogs/python/my/uwsgi.log'
关键代码路径
/www/server/panel/class/projectModel/pythonModel.py
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")
else:
log_file = project['project_config'["logpath" + "/uwsgi.log"
logsplit(project["name", log_file, project["name")
需要加一个判断,即可解决
if project['project_config']["stype"] == "python" or project['project_config']["stype"] == "command": 您好,您这边的面板版本是多少,是什么操作系统呢。方便看一下您这个/www/wwwlogs/python/my/uwsgi.log文件是否存在,以及文件的权限是多少 运维技术阿闯 发表于 2024-8-13 14:24
您好,您这边的面板版本是多少,是什么操作系统呢。方便看一下您这个/www/wwwlogs/python/my/uwsgi.log文件 ...
你没明白我的意思,我的项目是通过命令来启动的,但是面板源码没有正确判断,导致返回错误的日志路径,也就是uwsgi
else:
log_file = project['project_config'["logpath" + "/uwsgi.log"
logsplit(project["name", log_file, project["name") 宝塔用户_mwxxim 发表于 2024-8-13 18:13
你没明白我的意思,我的项目是通过命令来启动的,但是面板源码没有正确判断,导致返回错误的日志路径,也 ...
方便发一下您的项目包以及您的面板是几版本,是什么操作系统,如何配置的,方便发我一下吗,这边测试一下 我也遇到类似的问题,
面板版本:Linux面板9.1.0
启动命令:uvicorn main:app (自定义,会生成一个error.log,然后日志分割提示找不到uwsgi.log;使用uwsgi或gunicorn启动也是一样,uwsgi日志会切割,但是error.log不会被切割;尝试将输出重定向到其他文件也没有生效)
项目:fastapi
import uvicorn
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
async def index():
print("Hello World")
return {"message": "Hello World"}
if __name__ == '__main__':
uvicorn.run("main:app")
abelWang 发表于 2024-8-18 20:07
我也遇到类似的问题,
面板版本:Linux面板9.1.0
启动命令:uvicorn main:app (自定义,会生成一个error.l ...
您好,您按照楼主的方式是否能够解决呢 现在还是会日志分割失败,我已经提交BUG这么久,你们都没修复吗,算了,我以后手动修复吧, abelWang 发表于 2024-8-18 20:07
我也遇到类似的问题,
面板版本:Linux面板9.1.0
启动命令:uvicorn main:app (自定义,会生成一个error.l ...
就是宝塔的bug,你改一下宝塔源码就可以 本帖最后由 宝塔用户_cnuejm 于 2024-10-9 17:05 编辑
我服了 之前我就发现了但是没在意今天服务器直接死机了,安全模式进来看到日志100多G 不想要日志的同学可以加个计划任务定时清空
#!/bin/bash
# 定义要清理的目录
LOG_DIR="/www/wwwlogs/python"
# 遍历目录下的所有子文件夹
for dir in "$LOG_DIR"/*/; do
# 检查是否为目录
if [ -d "$dir" ]; then
# 遍历目录下的所有 .log 文件
for log_file in "$dir"*.log; do
# 检查文件是否存在
if [ -f "$log_file" ]; then
# 清空文件内容
> "$log_file"
echo "已清空文件: $log_file"
fi
done
fi
done
echo "所有 .log 文件已清空。"
您好,就是计划任务切割python网站日志不存在,这个问题反馈了
页:
[1]