wxy2077 / fastapi-mysql-generator

FastAPI + MySQL Web项目生成器 ,个人认为较为合理的项目组织结构;基于apscheduler的定时任务。
467 stars 131 forks source link

[Problem] variable basedir in logger.py #7

Closed grayguest closed 3 years ago

grayguest commented 3 years ago
# basedir = os.path.dirname(os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))))
basedir = os.path.dirname(os.path.dirname((os.path.dirname(os.path.abspath(__file__)))))

这块basedir因为是按照相对位置硬编码的,如果相对位置发生变化,from logger import logger生成日志的位置就会有问题,请问作者这块有啥好的解决方案吗?

wxy2077 commented 3 years ago

日志的路径考虑 后面考虑放到项目配置信息里面。我现在大部分的项目规划模版都在参考 gin-vue-admin 这个项目的服务端。

grayguest commented 3 years ago

我觉得这个问题不在于配置信息写在哪儿,而是配置信息怎么写,因为都是用的相对路径来计算生成日志的位置,如果调用方不符合预期的相对路径,那生成日志的位置也就不预期了,可能需要运行时的项目根目录信息。。

wxy2077 commented 3 years ago

嗯,这个问题我也注意到了,我的意思是,配置信息里面之前有相对启动文件main.py计算的项目路径 BASE_PATH,只要配置文件路径和启动文件不变动,这个BASE_PATH始终是可以定位到项目根路径的 (Django里面BASE_DIR就是这样设计的)

grayguest commented 3 years ago
basedir = os.path.dirname(os.path.dirname((os.path.dirname(os.path.abspath(__file__)))))

我今天才发现file不受调用方影响,我以为调用的时候file是指向调用方呢。