Django日志记录-ValueError:&x27;非类型';对象没有属性';拆分';

Django日志记录-ValueError:&x27;非类型';对象没有属性';拆分';,django,linux,ubuntu,logging,virtualbox,Django,Linux,Ubuntu,Logging,Virtualbox,我试图在一个使用Django的应用程序中配置一些日志记录,该应用程序最终将记录一些不同类型的信息以分离日志文件(例如运行模块所花费的时间、不同模块用于对流进行分类的标记等) 该应用程序正在部署到VirtualBox Ubuntu 16.04环境 现在,我只是尝试将一些简单的测试信息记录到一个名为eems-dashboard.log的文件中(我创建的文件是空的,并且似乎具有完全访问权限),只是尝试在开始时让日志工作。settings.py中的设置如下所示: LOGGING = { 'vers

我试图在一个使用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'
回溯(最近一次呼叫最后一次):
文件“manage.py”,第22行,在
从命令行(sys.argv)执行命令
文件“/webapps/uiux/env/lib/python3.5/site packages/django/core/management/_init__.py”,第364行,从命令行执行
utility.execute()
文件“/webapps/uiux/env/lib/python3.5/site packages/django/core/management/_init__.py”,第338行,在execute中
django.setup()
文件“/webapps/uiux/env/lib/python3.5/site packages/django/_init__.py”,第22行,在安装程序中
配置日志记录(settings.logging\u CONFIG,settings.logging)
文件“/webapps/uiux/env/lib/python3.5/site packages/django/utils/log.py”,第75行,在配置日志记录中
日志记录\配置\函数(日志记录\设置)
文件“/usr/lib/python3.5/logging/config.py”,第795行,在dictConfig中
dictConfigClass(config).configure()
文件“/usr/lib/python3.5/logging/config.py”,第566行,在configure中
“%r:%s%”(名称,e))
ValueError:无法配置处理程序“日志文件”:“非类型”对象没有属性“拆分”

关于这个错误,我发现了一些有限的信息,但似乎没有一个解决方案适用于手头的问题。我已经允许对日志文件的文件路径拥有完全权限,但这就是我所能找到的所有疑难解答建议。我很确定这与日志配置的语法有关,而与错误中出现的任何其他模块无关。我对上下文编程/开发非常陌生。谢谢。

您需要为该
日志文件
处理程序指定一个类。我深入研究了Python的logging/config.py模块,它试图在给定配置中找到一个类键,然后对该键调用
split()
。由于未在
log\u文件中指定类键,它将尝试在
None
上调用
split()

e、 g

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

查看文档,看看哪个日志处理程序适合您


为什么您的第一个记录器是空字符串?@Saeed我认为空字符串并不重要。正在讨论的处理程序是
'log\u file'