Django 2开发服务器日志记录问题

时间:2018-11-09 11:56:34

标签: django logging

在旧的django(1.7)/ ubuntu(14)中,我们将在本地项目中运行开发服务器(来自sys upstart),然后拖尾生成的upstart文件:

sudo tail -f /var/log/upstart/myapp.log

运行django服务器时,您可以编辑文件,在浏览器中单击“刷新”,然后查看所有日志记录信息。不过,最重要的是,如果您在一个.py文件中创建了错误,则服务器将停止并打印常见错误,一旦修复了错误,服务器将发现您已更改文件并重新启动。

自从升级到django2和ubuntu18以来,Upstart不再是我们要使用journalctl的东西了,我们不再拥有以前拥有的所有打印品。
现在我们登录到一个我可以拖尾的文件(见下文),但是如果我在.py文件中导致错误(按Save),它会显示开发服务器已重新启动-更改了文件-但从未成功向我显示错误。如果我纠正了错误,则服务器将重新启动,然后显示错误-并继续正常运行。

这是我的settings.py日志记录对象:

LOGGING = {
    'version': 1,
    'disable_existing_loggers': False,
    'handlers': {
        'filelog': {
            'level':'DEBUG',
            'class':'logging.FileHandler',
            'filename': '/var/log/app/myapp.log',            
        },
    },
    'loggers': {
        'django': {
            'handlers': ['filelog'],
            'level': 'DEBUG',
            'propagate': True,
        },
    },
}

有了这个,我可以运行:

sudo journalctl -f -u myapp
sudo tail -f /var/log/app/myapp.log

这两个都显示相同的打印内容,但是journalctl在修复后显示django / python错误,而myapp.log从不显示它。 两者都显示文件修复并保存后服务器正在重启。

我想念如何设置吗?是我对Django的日志记录的理解,还是新的journalctl? 任何指针都很好,欢呼!

0 个答案:

没有答案