【发布时间】:2019-01-15 03:14:27
【问题描述】:
我正在尝试在使用 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 配置的语法有关,而不是与错误中出现的任何其他模块有关。我对一般情况下的编程/开发非常陌生。谢谢。
【问题讨论】:
-
为什么你的第一个记录器是空字符串?
-
@Saeed 我不相信空字符串会很重要。有问题的处理程序是
'log_file'。
标签: django linux ubuntu logging virtualbox