Difference between revisions of "Python logging dict config"

From RHS Wiki
Jump to navigation Jump to search
(Created page with "<source lang=python> import logging.config def set_logging(log_level='DEBUG', # Logging levels available: 'DEBUG', 'INFO', 'WARNING', 'ERROR', 'CRITICAL' logs...")
 
m
Tag: visualeditor
 
(One intermediate revision by the same user not shown)
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="/var/fotingo/",
+
                 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
 +
import logging.config
 +
 
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('fotingo')
+
logger = logging.getLogger('logger')
logger.debug('Test logger')</source>
+
logger.debug('Test logger')
 +
</syntaxhighlight>

Latest revision as of 15:54, 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
import logging.config

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')