Skip to content

Instantly share code, notes, and snippets.

@user01
Created November 21, 2023 02:14
Show Gist options
  • Save user01/116d9142ab4bf4a93be482728495b3d8 to your computer and use it in GitHub Desktop.
Save user01/116d9142ab4bf4a93be482728495b3d8 to your computer and use it in GitHub Desktop.
import logging
import logging.config
def logging_configuration():
return {
"version": 1,
"disable_existing_loggers": False,
"formatters": {
"long": {
"format": "%(asctime)s|%(levelname)7s|%(filename)12s:%(lineno)3s| %(message)s",
"datefmt": "%Y-%m-%d %H:%M:%S",
}
},
"handlers": {
"console": {
"class": "logging.StreamHandler",
"level": "DEBUG",
"formatter": "long",
"stream": "ext://sys.stdout",
},
"debug_file_handler": {
"class": "logging.handlers.RotatingFileHandler",
"level": "DEBUG",
"formatter": "long",
"filename": "debug.log",
"maxBytes": 10485760,
"backupCount": 5,
"encoding": "utf8",
},
"info_file_handler": {
"class": "logging.handlers.RotatingFileHandler",
"level": "INFO",
"formatter": "long",
"filename": "info.log",
"maxBytes": 10485760,
"backupCount": 20,
"encoding": "utf8",
},
"warn_file_handler": {
"class": "logging.handlers.RotatingFileHandler",
"level": "WARNING",
"formatter": "long",
"filename": "warn.log",
"maxBytes": 10485760,
"backupCount": 20,
"encoding": "utf8",
},
"error_file_handler": {
"class": "logging.handlers.RotatingFileHandler",
"level": "ERROR",
"formatter": "long",
"filename": "errors.log",
"maxBytes": 10485760,
"backupCount": 20,
"encoding": "utf8",
},
},
"root": {
"level": "INFO",
"handlers": [
"console",
"debug_file_handler",
"info_file_handler",
"warn_file_handler",
"error_file_handler",
],
},
}
def get_logger(name: str = None):
logger_name = name if name else "default"
conf = logging_configuration()
logging.config.dictConfig(conf)
logger = logging.getLogger(logger_name)
return logger
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment