Skip to content

Instantly share code, notes, and snippets.

@madsc13ntist
Last active October 1, 2022 20:43
Show Gist options
  • Select an option

  • Save madsc13ntist/c0feeaf3cc8963ab81724191520e827f to your computer and use it in GitHub Desktop.

Select an option

Save madsc13ntist/c0feeaf3cc8963ab81724191520e827f to your computer and use it in GitHub Desktop.
just an example of how to setup a logging object called "logger" to use in your scripts.
import logging
# '''''''''' Setup More Robust Logging ''''''''''''''''''''
# Create a generic logger object
logger = logging.getLogger(__name__)
########### set logging level.
#logger.setLevel(logging.DEBUG)
logger.setLevel(logging.INFO)
#logger.setLevel(logging.WARNING)
########### define a formatter (or two).
formatter_short = logging.Formatter('[%(levelname)s] %(funcName)s: %(message)s')
formatter_long = logging.Formatter('%(asctime)s:%(levelname)s:%(filename)s:%(funcName)s:%(message)s')
########### Create a file handler for logging to a file
log_file_path = os.path.abspath(__file__).replace('.py', '.log')
fh = logging.FileHandler(log_file_path, mode="w")
fh.setFormatter(formatter_long)
fh.setLevel(logging.DEBUG)
logger.addHandler(fh)
########### Make a shream handler (for what is printed to the screen)
stream_handler = logging.StreamHandler()
stream_handler.setFormatter(formatter_short)
logger.addHandler(stream_handler)
########### Extra Credit: Writing to the windows event log too!
from logging.handlers import NTEventLogHandler
#nt_event_handler = NTEventLogHandler(os.path.basename(__file__), logtype='Application')
#nt_event_handler.setFormatter(formatter_long)
#nt_event_handler.setLevel(logging.WARNING)
#logger.addHandler(nt_event_handler)
############# Now write some logs!
some_var = 42
logger.debug(f"note some variable values or leave this here for print debugging. some_var = {some_var}")
logger.info("this is informational, good to know, not a big deal.")
logger.warning(".... oh wait... i don't think that should be like that....")
logger.error("OH SHIT OH SHIT OH SHIT OH SHIT")
logger.exception("sigh.... i want to log the entire crashlog paragraph to my log.... i guess i'll start fixing this...")
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment