在旧的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? 任何指针都很好,欢呼!