Skip to content

Instantly share code, notes, and snippets.

@angely-dev
Last active September 3, 2021 09:25
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 angely-dev/d2d72275bdde7e9430ceba61dda3e2be to your computer and use it in GitHub Desktop.
Save angely-dev/d2d72275bdde7e9430ceba61dda3e2be to your computer and use it in GitHub Desktop.
Python logging exit on error or critical levels
import logging
import logging.handlers
import sys
#
# The logger and the logging level
#
logger = logging.getLogger('mylogger')
logger.setLevel(logging.DEBUG)
#
# Exit handler
#
class ExitHandler(logging.StreamHandler):
def emit(self, record):
super().emit(record)
if record.levelno in (logging.ERROR, logging.CRITICAL):
sys.exit(1)
eh = ExitHandler()
logger.addHandler(eh)
#
# Logging format
#
fmt = '%(asctime)s %(module)-15s %(levelname)-15s %(message)s'
datefmt = '%Y-%m-%d %H:%M:%S'
formatter = logging.Formatter(fmt, datefmt)
eh.setFormatter(formatter)
#
# Logging test
#
logger.debug('debug message')
logger.info('info message')
logger.warning('warn message')
logger.error('error message') # will exit here
logger.critical('critical message') # or here
@angely-dev
Copy link
Author

Output:

$ python3.7 logger-exithandler.py 
2021-09-02 17:12:44 logger-exithandler DEBUG           debug message
2021-09-02 17:12:44 logger-exithandler INFO            info message
2021-09-02 17:12:44 logger-exithandler WARNING         warn message
2021-09-02 17:12:44 logger-exithandler ERROR           error message

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment