Created
March 14, 2016 05:51
-
-
Save swayson/fd62bab27c1f2d23eaf5 to your computer and use it in GitHub Desktop.
Python logging decorator and simple config.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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