Skip to content

Instantly share code, notes, and snippets.

@lisp3r
Created September 1, 2020 15:00
Show Gist options
  • Save lisp3r/e7d6bee8f8ecec847bf310281e75b3c7 to your computer and use it in GitHub Desktop.
Save lisp3r/e7d6bee8f8ecec847bf310281e75b3c7 to your computer and use it in GitHub Desktop.
logger.py
import os
import sys
import logging
from logging.handlers import RotatingFileHandler
CONFIG = {
'path': 'logs',
'max_bytes': 1024,
'backup_count': 10
}
log_path = os.path.join(CONFIG['path'], f'{__file__}.log')
os.makedirs(os.path.dirname(log_path), exist_ok=True)
logger = logging.getLogger('my_logger')
file_formatter = logging.Formatter('%(asctime)s - %(threadName)s - %(name)s - %(levelname)s - %(message)s')
console_formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
file_handler = RotatingFileHandler(log_path,
maxBytes=CONFIG['max_bytes'],
backupCount=CONFIG['backup_count']
) #total 2.5 gb
file_handler.setFormatter(file_formatter)
console_handler = logging.StreamHandler()
console_handler.setFormatter(console_formatter)
logger.addHandler(file_handler)
logger.addHandler(console_handler)
logger.setLevel(logging.DEBUG)
logger.critical('START MAIN WINDOW')
# catch exceptions
from traceback import format_tb
sys.excepthook = lambda exctype, value, tb: logger.critical(
f'EXCEPTION:\nType:{exctype}\nValue:{value}\nTraceback:{format_tb(tb)}\n')
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment