Skip to content

Instantly share code, notes, and snippets.

@korrosivesec
Created November 27, 2020 18:05
Show Gist options
  • Save korrosivesec/fdc500400faab59271a93e334261b77f to your computer and use it in GitHub Desktop.
Save korrosivesec/fdc500400faab59271a93e334261b77f to your computer and use it in GitHub Desktop.
Standard Python logging template
import logging
import os
LOGGER_NAME = 'my_logger'
def init_logger(log_level_for_console: str = 'info', log_level_for_file: str = 'debug',
save_dir: str = None):
logger = logging.getLogger(LOGGER_NAME)
logger.setLevel(level=logging.DEBUG)
logger.propagate = False
formatter = logging.Formatter(
"%(asctime)s [%(levelname)s] %(filename)s %(lineno)d - %(message)s",
"%Y-%m-%d %H:%M:%S")
ch = logging.StreamHandler()
ch.setLevel(log_level_for_console.upper())
ch.setFormatter(formatter)
logger.addHandler(ch)
if save_dir is not None:
fh = logging.FileHandler(os.path.join(save_dir, f"{LOGGER_NAME}.txt"))
fh.setLevel(log_level_for_file.upper())
fh.setFormatter(formatter)
logger.addHandler(fh)
def get_logger():
return logging.getLogger(LOGGER_NAME)
@korrosivesec
Copy link
Author

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