Skip to content

Instantly share code, notes, and snippets.

@dankkom
Last active September 27, 2024 00:28
Show Gist options
  • Select an option

  • Save dankkom/ad23c2e966822f6487b6fe8b949e6f79 to your computer and use it in GitHub Desktop.

Select an option

Save dankkom/ad23c2e966822f6487b6fe8b949e6f79 to your computer and use it in GitHub Desktop.
Easy logger configuration
import logging
from logging import handlers
from pathlib import Path
def setup_logging(logger_name: str, log_filepath: Path):
logger = logging.getLogger(logger_name)
logger.setLevel(logging.DEBUG)
logger.propagate = False
log_formatter = logging.Formatter(
fmt="%(asctime)s.%(msecs)03d %(levelname)s %(message)s",
datefmt="%Y-%m-%d %H:%M:%S",
)
# File log
filehandler = handlers.RotatingFileHandler(
filename=log_filepath,
mode="a",
maxBytes=50 * 2**20,
backupCount=100,
)
filehandler.setFormatter(log_formatter)
filehandler.setLevel(logging.INFO)
logger.addHandler(filehandler)
# Console log
streamhandler = logging.StreamHandler()
streamhandler.setFormatter(log_formatter)
streamhandler.setLevel(logging.DEBUG)
logger.addHandler(streamhandler)
return logger
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment