【问题标题】:Django Logging - Log File from Handler Not FoundDjango Logging - 未找到来自处理程序的日志文件
【发布时间】:2014-03-10 05:30:21
【问题描述】:

我在我的 Django 项目中设置了日志记录。它在本地开发中工作,但在生产中造成麻烦。 settings.py位如下:

import os

PROJECT_PATH = os.path.abspath(os.path.dirname(__name__))

. . .

'handlers': {
    'log_file': {
        'level': 'INFO',
        'class': 'logging.handlers.RotatingFileHandler',
        'filename': os.path.join(PROJECT_PATH, 'logs/django.log'),
        'maxBytes': '16777216',
        'formatter': 'verbose'
    },

. . .

我在/var/log/apache2/error.log 中不断收到此错误:

ValueError: Unable to configure handler 'log_file': [Errno 2] No such file or directory: '/logs/django.log'

我已经在 Django shell 中通过运行代码并手动设置 PROJECT_PATH 对此进行了测试,它似乎返回了正确的路径。另外,我已经检查并检查了日志文件的权限。虽然没有必要,但我将其更改为777 只是为了测试。还是没有运气。

当生产日志为空时,我的本地日志填满了我所期望的所有内容。

考虑到这一点,我想这个日志位置可能不是最好的,但如果它在生产中工作,至少我会知道......然后,我可以改变位置。

我错过了什么?

【问题讨论】:

  • 路径'/logs/django.log'是否有效且用户可写?
  • Apache 用户为www-data,所有权为root:www-data,权限设置为775,目前。但我已经测试了不同的所有权和777 权限,如原始问题所示。

标签: django apache logging


【解决方案1】:

虽然我真的很想得到这个问题的答案,但我决定采取另一种方法,以便继续前进。看来这个问题并没有引起足够的关注,而且我现在感觉不像是赏金,所以我暂时禁用了日志记录到文件。无论如何,我都会重新设计我的方法,所以这似乎是一个不错的主意。

我暂时想到的似乎可行且不会出错的是(对于文件处理程序定义):

'file': {
    'level': 'DEBUG',
    'class': 'logging.FileHandler',
    'filename': '/some/fixed/path/to/logs/django.log',
},

请注意,在我使用从os.path.join(PROJECT_PATH, 'logs/django.log') 派生的值之前。不知道为什么这不起作用,但这是罪魁祸首。所以即使这个位是正确的:PROJECT_PATH = os.path.abspath(os.path.dirname(__name__))(甚至在 python shell 中确认),它在生产中也不起作用。

【讨论】:

  • 我遇到了同样的问题。您是在嵌入式模式还是守护程序模式下运行?
  • 不在守护程序模式下...似乎每当我从开发转到我的 Apache 服务器(使用mod_wsgi)时,我都会遇到这个问题。有趣的是,我总是首先怀疑权限,然后修复这些无济于事......我认为这与我的路径有关。我通常设置类似PROJECT_ROOT = os.path.abspath(os.path.dirname(__name__)) 的东西,并在我的所有路径中使用它。这可能是由于我的服务器配置。
  • 你找到什么了吗?我有相同的配置。我的配置使用 python 服务器运行,但是当我切换到 Apache 时,它​​就停止了。
  • 我不再使用 Apache。我的堆栈正在使用 uWSGI 和 Nginx。简单得多,日志记录一切都很好。经过多年与 Apache 的斗争,我终于放弃了它。抱歉,我无法提供更多帮助。
猜你喜欢
  • 2019-09-10
  • 1970-01-01
  • 2017-09-28
  • 1970-01-01
  • 2021-09-19
  • 2021-06-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多