Skip to content

Instantly share code, notes, and snippets.

@notesbot
Last active February 26, 2024 01:25
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save notesbot/5c940ad41795d767ee173c011e0eca13 to your computer and use it in GitHub Desktop.
Save notesbot/5c940ad41795d767ee173c011e0eca13 to your computer and use it in GitHub Desktop.
import logging
import logging.handlers as handlers
import os
import sys
# Logging config setup
def setup_logger(script_name):
log_dir = f"/home/pi/bots/askhistorians/logs/{script_name}"
os.makedirs(log_dir, exist_ok=True)
### Define logging system
logger = logging.getLogger(script_name)
logger.setLevel(logging.INFO)
### Define logging formatter
formatter = logging.Formatter("%(asctime)s - %(message)s", "%Y-%m-%d %I:%M %p")
## Configure a timed rotating standard log.
logHandler = handlers.TimedRotatingFileHandler(
f"{log_dir}/{script_name}_std.log",
when="midnight",
interval=1,
backupCount=2,
)
logHandler.setLevel(logging.INFO)
logHandler.setFormatter(formatter)
# Configure standard output logging
stdout_handler = logging.StreamHandler(stream=sys.stdout)
stdout_handler.setLevel(logging.INFO)
stdout_handler.setFormatter(formatter)
# Configure error logging.
errorLogHandler = handlers.RotatingFileHandler(
f"{log_dir}/{script_name}_error.log",
maxBytes=5000,
backupCount=1,
)
errorLogHandler.setLevel(logging.ERROR)
errorLogHandler.setFormatter(formatter)
# Add handlers to loggers
logger.addHandler(logHandler)
logger.addHandler(errorLogHandler)
logger.addHandler(stdout_handler)
return logger
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment