Skip to content

Instantly share code, notes, and snippets.

@swayson
Created March 14, 2016 05:51
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save swayson/fd62bab27c1f2d23eaf5 to your computer and use it in GitHub Desktop.
Save swayson/fd62bab27c1f2d23eaf5 to your computer and use it in GitHub Desktop.
Python logging decorator and simple config.
import logging
def log_event(func):
"""
"""
def wrapper(*args, **kwargs):
# Code before function call
# <ADD IT HERE>
logger = setup_logging()
res = func(*args, **kwargs)
# End before function call
# <ADD IT HERE>
logger.info("{}: args: {} kwargs: {}".format(
str(func.__name__), str(args), str(kwargs)))
return res
return wrapper
def log_error(message):
logger = setup_logging()
logger.error(message)
def log_config():
config = {
"version": 1,
"disable_existing_loggers": False,
"formatters": {
"simple": {
"format": "%(asctime)s - %(name)s - %(levelname)s - %(message)s"
}
},
"handlers": {
"console": {
"class": "logging.StreamHandler",
"level": "DEBUG",
"formatter": "simple",
"stream": "ext://sys.stdout"
},
"info_file_handler": {
"class": "logging.handlers.RotatingFileHandler",
"level": "INFO",
"formatter": "simple",
"filename": "info.log",
"maxBytes": 10485760,
"backupCount": 20,
"encoding": "utf8"
},
"error_file_handler": {
"class": "logging.handlers.RotatingFileHandler",
"level": "ERROR",
"formatter": "simple",
"filename": "errors.log",
"maxBytes": 10485760,
"backupCount": 20,
"encoding": "utf8"
}
},
"loggers": {
"basic_logging_config": {
"level": "INFO",
"handlers": ["info_file_handler"],
"propagate": "no"
}
},
"root": {
"level": "INFO",
"handlers": ["console", "info_file_handler", "error_file_handler"]
}
}
return config
def setup_logging():
logging.config.dictConfig(log_config())
logger = logging.getLogger("basic_logging_config")
return logger
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment