I am trying to log INFO as well as ERROR log on production. But I am not sure how to mention both log levels for the same project.
LOGGING = {
'version': 1,
'disable_existing_loggers': True,
'root': {
'level': 'WARNING',
'handlers': ['console', ],
},
'formatters': {
'verbose': {
'format': '%(levelname)s %(asctime)s %(module)s '
'%(process)d %(thread)d %(message)s'
},
},
'handlers': {
'console': {
'level': 'DEBUG',
'class': 'logging.StreamHandler',
'formatter': 'verbose'
},
'sns': {
'level': 'ERROR',
'class': 'project.abc.snshandler.SNSHandler',
'formatter': 'verbose'
}
},
'loggers': {
'django.db.backends': {
'level': 'ERROR',
'handlers': ['console', ],
'propagate': False,
},
'django.security.DisallowedHost': {
'level': 'ERROR',
'handlers': ['console', ],
'propagate': False,
},
'project': {
'level': 'ERROR',
'handlers': ['console', 'sns'],
'propagate': False,
},
},
}
At project level i want to log INFO logs as well.
The logging level you specify in your configuration is the minimum level will be logged. Just to recap, here the predefined levels in order of importance (from lowest to maximum):
DEBUG
INFO
WARNING
ERROR
CRITICAL
So, if you put INFO
in your configuration you will see all logs marked as INFO
, WARNING
, ERROR
, and CRITICAL
.
If you really want to see only INFO
and ERROR
you can try to write some custom code, but I discourage it as it smells as a bad design.
References:
Here how your configuration would look like:
LOGGING = {
'version': 1,
'disable_existing_loggers': True,
'root': {
'level': 'WARNING',
'handlers': ['console', ],
},
'formatters': {
'verbose': {
'format': '%(levelname)s %(asctime)s %(module)s '
'%(process)d %(thread)d %(message)s'
},
},
'handlers': {
'console': {
'level': 'INFO',
'class': 'logging.StreamHandler',
'formatter': 'verbose'
},
'sns': {
'level': 'ERROR',
'class': 'project.abc.snshandler.SNSHandler',
'formatter': 'verbose'
}
},
'loggers': {
'django.db.backends': {
'level': 'INFO',
'handlers': ['console', ],
'propagate': False,
},
'django.security.DisallowedHost': {
'level': 'INFO',
'handlers': ['console', ],
'propagate': False,
},
'project': {
'level': 'INFO',
'handlers': ['console', 'sns'],
'propagate': False,
},
},
}