В старом django (1.7) / ubuntu (14) мы запускаем сервер разработки в наших локальных проектах (из sys upstart) и затем следим за созданным файлом upstart:
sudo tail -f /var/log/upstart/myapp.log
Во время работы сервера django вы могли редактировать файлы, нажимать кнопку «Обновить» в браузере и просматривать всю информацию журналов. Самое главное, что если вы создали ошибку в одном из ваших файлов .py, сервер остановится и напечатает обычную ошибку, как только вы исправите ошибку, сервер обнаружит, что вы изменили файл, и перезагрузите компьютер.
После обновления до django2 и ubuntu18 Upstart больше не является тем, что мы предполагаем использовать journalctl, и мы больше не получаем все отпечатки, которые у нас были.
Теперь мы регистрируем файл (см. Ниже), к которому я могу подключиться, но если я вызываю ошибку в файле .py (нажмите Сохранить), он печатает, что сервер dev перезапустился - потому что я изменил файл - но он никогда показывает мне ошибку. Если я исправлю ошибку, сервер перезапустится, затем напечатает ошибку - и продолжит работу в обычном режиме.
Вот мой объект журнала 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?
Любые указатели были бы великолепны, ура!