当前位置:论坛首页 > BUG提交 > Linux面板

【待反馈】python项目使用自定义命令启动导致日志切割找不

发表在 BUG提交2024-8-12 16:11 [复制链接] 5 193

错误处:
|---Python项目[maotouying]的日志分割任务出错
=================已完成所有日志切割任务==================
----------------------------------------------------------------------------
★[2024-08-12 15:58:18] 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: [Errno 2] No such file or directory: '/www/wwwlogs/python/my/uwsgi.log'


关键代码路径

/www/server/panel/class/projectModel/pythonModel.py
  1. def for_split(self, logsplit, project):
  2.         """日志切割方法调用
  3.         @author baozi <202-03-20>
  4.         @param:
  5.             logsplit  ( LogSplit ):  日志切割方法,传入 pjanme:项目名称 sfile:日志文件路径 log_prefix:产生的日志文件前缀
  6.             project  ( dict ):  项目内容
  7.         @return
  8.         """
  9.         if project['project_config'["stype" == "python":
  10.             log_file = project['project_config'["logpath" + "/error.log"
  11.             logsplit(project["name", log_file, project["name")
  12.         elif project['project_config'["stype" == "gunicorn":
  13.             log_file = project['project_config'["logpath" + "/gunicorn_error.log"
  14.             logsplit(project["name", log_file, project["name" + "_error")
  15.             log_file2 = project['project_config'["logpath" + "/gunicorn_acess.log"
  16.             logsplit(project["name", log_file2, project["name" + "_acess")
  17.         else:
  18.             log_file = project['project_config'["logpath" + "/uwsgi.log"
  19.             logsplit(project["name", log_file, project["name")
复制代码


需要加一个判断,即可解决
if project['project_config'["stype" == "python" or project['project_config'["stype" == "command":
使用道具 举报 只看该作者 回复
发表于 2024-8-13 14:24:01 | 显示全部楼层
您好,您这边的面板版本是多少,是什么操作系统呢。方便看一下您这个/www/wwwlogs/python/my/uwsgi.log文件是否存在,以及文件的权限是多少
使用道具 举报 回复 支持 反对
发表于 2024-8-13 18:13:30 | 显示全部楼层
运维技术阿闯 发表于 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")
使用道具 举报 回复 支持 反对
发表于 2024-8-14 11:35:10 | 显示全部楼层
宝塔用户_mwxxim 发表于 2024-8-13 18:13
你没明白我的意思,我的项目是通过命令来启动的,但是面板源码没有正确判断,导致返回错误的日志路径,也 ...

方便发一下您的项目包以及您的面板是几版本,是什么操作系统,如何配置的,方便发我一下吗,这边测试一下
使用道具 举报 回复 支持 反对
发表于 2024-8-18 20:07:18 | 显示全部楼层
我也遇到类似的问题,
面板版本:Linux面板9.1.0
启动命令:uvicorn main:app (自定义,会生成一个error.log,然后日志分割提示找不到uwsgi.log;使用uwsgi或gunicorn启动也是一样,uwsgi日志会切割,但是error.log不会被切割;尝试将输出重定向到其他文件也没有生效)
项目:fastapi

  1. import uvicorn
  2. from fastapi import FastAPI

  3. app = FastAPI()


  4. @app.get("/")
  5. async def index():
  6.     print("Hello World")
  7.     return {"message": "Hello World"}

  8. if __name__ == '__main__':
  9.     uvicorn.run("main:app")
复制代码
使用道具 举报 回复 支持 反对
发表于 2024-8-19 14:40:51 | 显示全部楼层
abelWang 发表于 2024-8-18 20:07
我也遇到类似的问题,
面板版本:Linux面板9.1.0
启动命令:uvicorn main:app (自定义,会生成一个error.l ...

您好,您按照楼主的方式是否能够解决呢
使用道具 举报 回复 支持 反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

普通问题处理

论坛响应时间:72小时

问题处理方式:排队(仅解答)

工作时间:白班:9:00 - 18:00

紧急问题处理

论坛响应时间:10分钟

问题处理方式:1对1处理(优先)

工作时间:白班:9:00 - 18:00

工作时间:晚班:18:00 - 24:00

立即付费处理

工作时间:09:00至24:00

快速回复 返回顶部 返回列表