gpt4 book ai didi

python - 为不同的设置配置不同的日志文件位置的 DRY 方法是什么?

转载 作者:太空宇宙 更新时间:2023-11-03 11:36:19 24 4
gpt4 key购买 nike

我在 django 项目中使用 python 的 logging 模块。我正在我的 settings.py 文件中执行基本的日志记录配置。像这样:

import logging   
import logging.handlers
logger = logging.getLogger('project_logger')
logger.setLevel(logging.INFO)

LOG_FILENAME = '/path/to/log/file/in/development/environment'
handler = logging.handlers.TimedRotatingFileHandler(LOG_FILENAME, when = 'midnight')
formatter = logging.Formatter(LOG_MSG_FORMAT)
handler.setFormatter(formatter)
logger.addHandler(handler)

我有一个单独的生产设置文件。此文件 (production.py) 从 settings 导入所有内容并覆盖一些选项(将 DEBUG 设置为 False , 例如)。我希望使用不同的 LOG_FILENAME 进行生产。我该怎么办?我可以在 production.py 中重复整个配置部分,但是如果 /path/to/log/file/in/development/environment 不存在于生产环境中,就会产生问题机器。此外,它看起来不太“干”。

谁能建议一个更好的方法来解决这个问题?

最佳答案

为什么不把这个语句放在settings.py的末尾,使用DEBUG flal es indicator进行开发呢?

像这样:

import logging   
import logging.handlers
logger = logging.getLogger('project_logger')
logger.setLevel(logging.INFO)

[snip]
if DEBUG:
LOG_FILENAME = '/path/to/log/file/in/development/environment'
else:
LOG_FILENAME = '/path/to/log/file/in/production/environment'

handler = logging.handlers.TimedRotatingFileHandler(LOG_FILENAME, when = 'midnight')
formatter = logging.Formatter(LOG_MSG_FORMAT)
handler.setFormatter(formatter)
logger.addHandler(handler)

关于python - 为不同的设置配置不同的日志文件位置的 DRY 方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1147812/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com