gpt4 book ai didi

Django 日志记录 - ValueError : 'NoneType' object has no attribute 'split'

转载 作者:太空宇宙 更新时间:2023-11-04 05:14:01 25 4
gpt4 key购买 nike

我正在尝试在使用 Django 的应用程序中配置一些日志记录,最终将几种不同类型的信息记录到单独的日志文件中(例如运行模块所需的时间、不同模块的标记以对流程进行分类等)。

应用程序正在部署到 VirtualBox Ubuntu 16.04 环境。

现在,我只是想将一些简单的测试信息记录到名为 eems-dashboard.log 的文件中(我创建的文件是空的,并且似乎具有完全访问权限),只是为了尝试让日志记录最初正常工作。 settings.py 中的设置如下所示:

LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'formatters': {
'verbose': {
'format': '%(levelname)s %(asctime)s %(module)s %(process)d %(thread)d %(message)s'
},
},
'handlers': {
'console': {
'level': 'DEBUG',
'class': 'logging.StreamHandler',
'formatter': 'verbose'
},
'log_file':{
'level': 'DEBUG',
'filename': '/var/log/eems-dashboard.log',
'formatter': 'verbose'
}
},
'loggers': {
'': {
'handlers': ['log_file'],
'level': 'DEBUG',
},
'django.request': {
'handlers': ['log_file'],
'propagate': True,
'level': 'DEBUG'
},
'apps': {
'handlers': ['log_file'],
'level': 'DEBUG',
'propagate': True,
}
}
}

但是,每当我尝试运行此应用程序的本地部署时,都会收到以下错误:

    Traceback (most recent call last):
File "manage.py", line 22, in <module>
execute_from_command_line(sys.argv)
File "/webapps/uiux/env/lib/python3.5/site-packages/django/core/management/__init__.py", line 364, in execute_from_command_line
utility.execute()
File "/webapps/uiux/env/lib/python3.5/site-packages/django/core/management/__init__.py", line 338, in execute
django.setup()
File "/webapps/uiux/env/lib/python3.5/site-packages/django/__init__.py", line 22, in setup
configure_logging(settings.LOGGING_CONFIG, settings.LOGGING)
File "/webapps/uiux/env/lib/python3.5/site-packages/django/utils/log.py", line 75, in configure_logging
logging_config_func(logging_settings)
File "/usr/lib/python3.5/logging/config.py", line 795, in dictConfig
dictConfigClass(config).configure()
File "/usr/lib/python3.5/logging/config.py", line 566, in configure
'%r: %s' % (name, e))
ValueError: Unable to configure handler 'log_file': 'NoneType' object has no attribute 'split'

我发现了有关此错误的一些有限信息,但似乎没有一个解决方案适用于当前的问题。我已授予对日志文件的文件路径的完全权限,但这就是我能找到的所有故障排除建议。我很确定这与 LOGGING 配置的语法有关,而不是错误中出现的任何其他模块的问题。我对一般上下文的编程/开发非常陌生。谢谢。

最佳答案

您需要为该 log_file 处理程序指定一个类。我深入研究了Python的logging/config.py模块,它尝试在给定的配置中找到一个类键,然后再对所述键调用split()。由于您没有在 log_file 字典中指定类键,因此它将尝试在 None 上调用 split()

例如

'日志文件':{
'级别':'调试',
'文件名': '/var/log/eems-dashboard.log',
'格式化程序': '详细',
'class': 'logging.handlers.SysLogHandler'
}

查看文档以了解哪种日志记录处理程序适合您。

https://docs.python.org/2/library/logging.handlers.html

关于Django 日志记录 - ValueError : 'NoneType' object has no attribute 'split' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51736796/

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