gpt4 book ai didi

python - 避免在调用 Django 管理命令时触及空日志文件

转载 作者:太空宇宙 更新时间:2023-11-03 17:07:58 25 4
gpt4 key购买 nike

我在我的project.settings 文件中配置了日志记录,如下所示:

LOGGING = {
[ . . . ],
'handlers': {
'console': {
'level': 'DEBUG',
'class': 'logging.StreamHandler',
'formatter': 'verbose',
},
'logfile': {
'()': uniq_logfile,
'level': 'DEBUG',
'formatter': 'verbose',
'logtype': 'global',
},
[ . . . ]
}

这是uniq_logfile的定义:

BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))

def uniq_logfile(logtype):
base = '%s.%s' % (logtype, datetime.datetime.now().strftime('%d%b.%H%M'))
path = os.path.join(BASE_DIR, '.logs', base)
return logging.FileHandler(path, 'w')

问题:每当我运行任何 ./manage.py <command> ,所有处理程序都会被调用,并且每个处理程序的空日志文件都会被触及。例如,如果我定义了 3 个处理程序,并且我调用 manage.py如果命令只有一个关联的处理程序,则会调用所有 3 个处理程序(会创建与其他两个处理程序相对应的 2 个空文件)。是否有一些设置可以避免这样做?

我在 Mac 上使用 python v2.7.10。

最佳答案

您不必说明您正在使用哪个版本的 Python - 在 Python 2.6 及更高版本中,您可以将 delay 参数设置为文件处理程序构造函数,以避免在实际运行之前打开文件写给他们。请参阅FileHandler documentation .

关于python - 避免在调用 Django 管理命令时触及空日志文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34420677/

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