Я создал автономный скрипт в Django, но, хотя запись в журнал, кажется, настроена правильно, он не может записать stderr в файл журнала Django. Я использую Python 3,6 с Django 2,1 .
Содержимое скрипта Django my_script.py :
import os
import django
import logging
os.environ['DJANGO_SETTINGS_MODULE'] = 'my_project.settings'
django.setup()
logger = logging.getLogger('my_script')
def main():
logger.debug('This message is logged')
raise Exception('Error messages (stderr) are NOT logged!')
if __name__ == "__main__":
main()
Моя конфигурация регистрации в my_project / settings.py:
LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'formatters': {
'verbose': {
'format': '%(levelname)s %(asctime)s %(module)s %(process)d %(thread)d %(message)s'
},
'simple': {
'format': '%(levelname)s %(message)s'
},
},
'handlers': {
'console': {
'class': 'logging.StreamHandler',
},
'my_scrip_file': {
'level':'DEBUG',
'class':'logging.handlers.RotatingFileHandler',
'filename': 'logs/my_script.log',
'maxBytes': 1024*1024*5, # 5 MB
'backupCount': 5,
'formatter':'verbose',
},
},
'loggers': {
'my_script': {
'handlers': ['my_scrip_file'],
'level': os.getenv('DJANGO_LOG_LEVEL', 'DEBUG'),
'propagate': True
},
},
}
Учитывая, что скрипт должен запускаться через python my_script.py
, кто-нибудь знает, как получить stderr для хранения сообщений в файле журнала?