Difference between revisions of "Python logging dict config"
Jump to navigation
Jump to search
Rafahsolis (talk | contribs) (Created page with "<source lang=python> import logging.config def set_logging(log_level='DEBUG', # Logging levels available: 'DEBUG', 'INFO', 'WARNING', 'ERROR', 'CRITICAL' logs...") |
Rafahsolis (talk | contribs) m Tag: visualeditor |
||
| Line 1: | Line 1: | ||
| − | <source lang=python> | + | <source lang="python"> |
| + | import os | ||
import logging.config | import logging.config | ||
| + | |||
def set_logging(log_level='DEBUG', # Logging levels available: 'DEBUG', 'INFO', 'WARNING', 'ERROR', 'CRITICAL' | def set_logging(log_level='DEBUG', # Logging levels available: 'DEBUG', 'INFO', 'WARNING', 'ERROR', 'CRITICAL' | ||
| − | logs_path=" | + | logs_path="logger.log", |
keep_logs=7, | keep_logs=7, | ||
log_max_size=52428800 # 50 * 1024 * 1024 bytes | log_max_size=52428800 # 50 * 1024 * 1024 bytes | ||
| Line 55: | Line 57: | ||
} | } | ||
return logging | return logging | ||
| + | </source><syntaxhighlight lang="python"> | ||
| + | from logger import set_logging | ||
| + | |||
BASE_DIR = '.' | BASE_DIR = '.' | ||
LOGGING = set_logging(logs_path=os.path.join(BASE_DIR, 'logs')) | LOGGING = set_logging(logs_path=os.path.join(BASE_DIR, 'logs')) | ||
logging.config.dictConfig(LOGGING) | logging.config.dictConfig(LOGGING) | ||
| − | logger = logging.getLogger(' | + | logger = logging.getLogger('logger') |
| − | logger.debug('Test logger')</ | + | logger.debug('Test logger') |
| + | </syntaxhighlight> | ||
Revision as of 14:30, 27 November 2021
import os
import logging.config
def set_logging(log_level='DEBUG', # Logging levels available: 'DEBUG', 'INFO', 'WARNING', 'ERROR', 'CRITICAL'
logs_path="logger.log",
keep_logs=7,
log_max_size=52428800 # 50 * 1024 * 1024 bytes
):
logging = {
'version': 1,
'disable_existing_loggers': False,
'formatters': {
'file_formatter': {
'format': '%(asctime)s [%(levelname)s] %(name)s: %(message)s %(filename)s %(lineno)d'
},
'console_formatter': {
'format': '%(asctime)s [%(levelname)s] %(name)s: %(message)s\n └── %(pathname)s %(lineno)d\n'
},
},
'handlers': {
'logfile': {
'level': log_level,
'class': 'logging.handlers.RotatingFileHandler',
'filename': os.path.join(logs_path, "fotingo.log"),
'maxBytes': log_max_size,
'backupCount': keep_logs,
'formatter': 'file_formatter'
},
'error_logfile': {
'level': 'ERROR',
'class': 'logging.handlers.RotatingFileHandler',
'filename': os.path.join(logs_path, "errors.log"),
'maxBytes': log_max_size,
'backupCount': keep_logs,
'formatter': 'file_formatter'
},
'console': {
'level': log_level,
'formatter': 'console_formatter',
'class': 'logging.StreamHandler',
},
},
'loggers': {
'': {
'handlers': ['logfile', 'console'],
'level': log_level
},
"fotingo": {
'handlers': ['logfile', 'console', 'error_logfile'],
'level': log_level,
'propagate': False,
},
}
}
return logging
from logger import set_logging
BASE_DIR = '.'
LOGGING = set_logging(logs_path=os.path.join(BASE_DIR, 'logs'))
logging.config.dictConfig(LOGGING)
logger = logging.getLogger('logger')
logger.debug('Test logger')