Last active
March 10, 2025 05:11
-
-
Save ZediWards/d6634c14535e737b7b159b444c32cb0a to your computer and use it in GitHub Desktop.
Python logging
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
# ref https://realpython.com/python-logging/ | |
import logging | |
# filter for logging handler - console_handler_debugs | |
def show_only_debugs(record): | |
return record.levelname == 'DEBUG' | |
# instantiate logger and handlers | |
logger = logging.getLogger(__name__) | |
logger.setLevel('DEBUG') # set to lowest so handlers can start from there | |
# formatter that can be used on handlers or use multiple formatters for different handlers | |
formatter = logging.Formatter( | |
"{asctime} - {levelname} - {message}", | |
style="{", | |
datefmt="%Y-%m-%d %H:%M", | |
) | |
# create handlers | |
# console handler | |
console_handler = logging.StreamHandler() | |
console_handler.setLevel("DEBUG") | |
console_handler.setFormatter(formatter) | |
logger.addHandler(console_handler) | |
# console handler only debugs filter | |
console_handler_debugs = logging.StreamHandler() | |
console_handler_debugs.setLevel('DEBUG') | |
console_handler_debugs.setFormatter(formatter) | |
console_handler_debugs.addFilter(show_only_debugs) | |
logger.addHandler(console_handler_debugs) | |
# file handler 1 | |
file_handler_1 = logging.FileHandler( | |
'./decorators/log_file_1.log', mode='a', encoding='utf-8' | |
) | |
file_handler_1.setLevel('DEBUG') | |
file_handler_1.setFormatter(formatter) | |
logger.addHandler(file_handler_1) | |
# file handler 2 | |
file_handler_2 = logging.FileHandler( | |
'./decorators/log_file_2.log', mode='a', encoding='utf-8' | |
) | |
file_handler_2.setLevel('WARNING') | |
file_handler_2.setFormatter(formatter) | |
logger.addHandler(file_handler_2) | |
# add handlers to logger | |
logger.addHandler(console_handler) | |
logger.addHandler(console_handler_debugs) | |
logger.addHandler(file_handler_1) | |
logger.addHandler(file_handler_2) | |
# logger info things | |
logger.handlers # look at loggers handlers | |
logger # look at logger | |
logger.getEffectiveLevel() # int representation of log level | |
logger.parent # logger parent | |
# logs and their int representation | |
logger.debug('hello debug') # 10 | |
logger.info('hello info') # 20 | |
logger.warning('hello warning') # 30 | |
logger.error('hello error') # 40 | |
logger.critical('hello critical') # 50 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment