Skip to content

Instantly share code, notes, and snippets.

@theonejb
Created March 28, 2017 22:00
Show Gist options
  • Save theonejb/ec0bc318644aa3c2dc5277519acee45e to your computer and use it in GitHub Desktop.
Save theonejb/ec0bc318644aa3c2dc5277519acee45e to your computer and use it in GitHub Desktop.
Logger with custom formatter
import logging
logger = logging.getLogger("testLogger")
logger.setLevel(logging.DEBUG)
handler = logging.StreamHandler()
handler.setLevel(logging.DEBUG)
class CustomFormatter(logging.Formatter):
def format(self, record):
original_log_message = super().format(record)
key_value_pairs = " ".join(
"{}={}".format(key, value) for key, value in record.my_extras.items()
)
return original_log_message + " " + key_value_pairs
formatter = CustomFormatter()
handler.setFormatter(formatter)
logger.addHandler(handler)
logger.debug("Test log message", extra={"my_extras": {"key1": "value1", "key2": "value2"}})
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment