Skip to content

Instantly share code, notes, and snippets.

@Neetless
Created December 22, 2015 17:14
Show Gist options
  • Save Neetless/16fb31ac7a61571f99a0 to your computer and use it in GitHub Desktop.
Save Neetless/16fb31ac7a61571f99a0 to your computer and use it in GitHub Desktop.
This is a logging.getLogger() wrapper. If there are no specific logging policy and we need a just simple logging approach, this may be useful. You can get a prepared logger anywhere by "logger = configuratedlog.get_logger(__name__)"
# -*- coding: utf-8 -*-
import logging
import logging.handlers
'''
logcreater is wrapper of logging.getLogger().
This manage to create configurated logger instances safely.
'''
logger_dict = {}
# Default settings
LEVEL = logging.DEBUG
FORMAT = '%(asctime)s - %(name)s - %(levelname)s - %(message)s'
LOG_FILE_PATH = 'path-to-logging-file'
ROTATE_FILE_SIZE = 10000000
N_BACKUP_FILE = 5
def get_logger(name):
'''
get_logger return a logger with default configuration.
'''
# If the named logger has been already created, return the logger.
if name in logger_dict:
return logger_dict[name]
logger = logging.getLogger(name)
# Configurate default logger.
logger.setLevel(LEVEL)
formatter = logging.Formatter(FORMAT)
rh = logging.handlers.RotatingFileHandler(LOG_FILE_PATH,
maxBytes=ROTATE_FILE_SIZE,
backupCount=N_BACKUP_FILE
)
rh.setLevel(LEVEL)
rh.setFormatter(formatter)
logger.addHandler(rh)
# Add dictionary containing names of created logger.
logger_dict[name] = logger
return logger
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment