Search code examples
djangowagtailerror-logging

Wagtail Empty log file with debug=false


I'm using wagtail 2.7, Django 2.2.5 and i'm trying to make logging to file. When DEBUG=True, all work fine and i have my logs. But when DEBUG=False in production my log file is empty. I tried a lot of different logging configs, but they doesn't work in prod, with one config i got DEBUG logs, but i can't get ERROR logs.

My current config [appname/settings/base.py]:

LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'filters': {
    'require_debug_false': {
        '()': 'django.utils.log.RequireDebugFalse',
    },
},
'formatters': {
    'verbose': {
        'format': "[%(asctime)s] %(levelname)s [%(pathname)s:%(lineno)s] %(message)s",
        'datefmt': "%d/%b/%Y %H:%M:%S"
    },
    'simple': {
        'format': '%(levelname)s %(message)s'
    },
},
'handlers': {
    'file': {
        'level': 'ERROR',
        'filters': ['require_debug_false'],
        'class': 'logging.FileHandler',
        'filename': os.path.join(ev('APP_LOG_DIR'), "debug.log"),
        "formatter": "verbose",
    },
},
'loggers': {
    'django': {
        'handlers': ['file'],
        'level': 'ERROR',
        'propagate': True,
    },
    'django.request': {
        'handlers': ['file'],
        'level': 'ERROR',
        'propagate': True,
    },
    'django.server': {
        'handlers': ['file',],
        'level': 'ERROR',
        'propagate': True,
    },
}

With this config i got debug logs, but errors didn't work:

LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'formatters': {
    'verbose': {
        'format': "[%(asctime)s] %(levelname)s [%(pathname)s:%(lineno)s] %(message)s",
        'datefmt': "%d/%b/%Y %H:%M:%S"
    },
    'simple': {
        'format': '%(levelname)s %(message)s'
    },
},
'handlers': {
    'fileError': {
        'level': 'ERROR',
        'class': 'logging.FileHandler',
        'filename': os.path.join(ev('APP_LOG_DIR'), "error.log"),
        "formatter": "verbose",
    },
    'fileDebug': {
        'level': 'DEBUG',
        'class': 'logging.FileHandler',
        'filename': os.path.join(ev('APP_LOG_DIR'), "debug.log"),
        "formatter": "verbose",
    },
},
'root': {
    'handlers': ['fileError', 'fileDebug'],
    'level': 'DEBUG',
},
'loggers': {
    '':{
        'handlers': ['fileError','fileDebug'],
        'level': 'ERROR',
        'propagate': True,
    },
    'django': {
        'handlers': ['fileError','fileDebug'],
        'propagate': True,
        'level': 'ERROR',
    },
    'django.request': {
        'handlers': ['fileError','fileDebug'],
        'propagate': True,
        'level': 'DEBUG',
    },
    'core': {
        'handlers': ['fileError', 'fileDebug'],
        'propagate': True,
        'level': 'DEBUG',
    },
    'itechart': {
        'handlers': ['fileError','fileDebug'],
        'propagate': True,
        'level': 'ERROR',
    }
}

Also if i delete files, application make new, but empty.


Solution

  • I've solved this. Reason was in 500.html. I removed it and it works.