Django 日志记录错误:未创建日志文件

Posted

技术标签:

【中文标题】Django 日志记录错误:未创建日志文件【英文标题】:Django logging error: Log file not created 【发布时间】:2020-05-14 19:20:21 【问题描述】:

在运行 Django 项目时,我收到以下错误:

由 Traceback 启动的线程中未处理的异常(最后一次调用):文件 “/usr/local/lib/python2.7/dist-packages/django/utils/autoreload.py”, 第 229 行,在包装器中 fn(*args, **kwargs) 文件 "/usr/local/lib/python2.7/dist-packages/django/core/management/commands/runserver.py", 第 107 行,inner_run autoreload.raise_last_exception() 文件“/usr/local/lib/python2.7/dist-packages/django/utils/autoreload.py”, 第 252 行,在 raise_last_exception 中 六.reraise(*_exception) 文件“/usr/local/lib/python2.7/dist-packages/django/utils/autoreload.py”, 第 229 行,在包装器中 fn(*args, **kwargs) 文件“/usr/local/lib/python2.7/dist-packages/django/init.py”,第 17 行, 在设置中 configure_logging(settings.LOGGING_CONFIG, settings.LOGGING) 文件“/usr/local/lib/python2.7/dist-packages/django/utils/log.py”, 第 86 行,在 configure_logging logging_config_func(logging_settings) 文件“/usr/lib/python2.7/logging/config.py”,第 794 行,在 dictConfig dictConfigClass(config).configure() 文件“/usr/lib/python2.7/logging/config.py”,第 576 行,在配置中 '%r: %s' % (name, e))

ValueError:无法配置处理程序“ap_migration_log”:[Errno 2] 没有这样的文件或目录: '/home/dg/Desktop/dg_coco/coco-server/geographies/management/commands/log/ap_migration_log'

我在 *** 上找到的一个解决方案是创建这些文件,然后就不会发生此错误。但是,为什么 Django 不能在需要时自行创建日志文件?是否有任何配置设置或命令来确保日志文件不是手动创建的?

【问题讨论】:

你读过docs.djangoproject.com/en/3.0/topics/logging。我想你可以在这里找到你的解决方案 【参考方案1】:

确保如果您将日志写入/my/log/dir/log.txt,则该路径与空的log.txt 文件一起存在。还要确保您的目录具有执行 CRUD 操作的正确权限。文件也是如此。

最好将日志文件存储在 /var/log/ 目录中。

查看https://docs.djangoproject.com/en/3.0/topics/logging/#configuring-logging 以获取有关 Django 日志记录工作原理的示例。

【讨论】:

以上是关于Django 日志记录错误:未创建日志文件的主要内容,如果未能解决你的问题,请参考以下文章

Django 1.3 日志记录:未记录 500 个错误

Django:无法配置处理程序“系统日志”

仅在出现错误时创建 Python 日志文件(使用日志记录模块)

使用 DEBUG=False,我如何将 django 异常记录到日志文件中

Django 中的 Python 日志记录

Nginx+Gunicorn+Supervisor+Django 报错