This repository has been archived on 2025-05-28. You can view files and clone it, but cannot push or open issues or pull requests.
photo-datestamper/logger.py

50 lines
1.2 KiB
Python
Raw Permalink Normal View History

2020-11-15 01:34:44 +01:00
"""
Logging facility for the application.
This module is to be imported from userland.
After import, the logger object should be retrieved like that:
log = logging.getLogger("datestemper.<whatever>")
"""
import logging
import logging.handlers as handlers
import os
from pathlib import Path
# Relative to working directory
LOG_NAME = "datestamper"
LOG_DIR = "log"
LOG_FILE = Path(Path.cwd(), LOG_DIR, LOG_NAME + ".log")
# Create log dir & file if does not exists
LOG_FILE.parent.mkdir(parents=True, exist_ok=True)
LOG_FILE.touch(exist_ok=True)
root_logger = logging.getLogger(LOG_NAME)
root_logger.setLevel(logging.DEBUG)
logger_fmt = logging.Formatter(
fmt="{asctime}.{msecs:03.0f} [{levelname:.1s}] [{name}] {message}",
datefmt="%Y-%m-%d %H:%M:%S",
style="{",
)
logger_fmt_lite = logging.Formatter(
fmt="[{levelname:.1s}] {message}",
style="{",
)
root_logger_sh = logging.StreamHandler()
root_logger_sh.setLevel(logging.INFO)
root_logger_sh.setFormatter(logger_fmt_lite)
root_logger_fh = logging.handlers.RotatingFileHandler(
filename=LOG_FILE, encoding="UTF-8", maxBytes=1024
)
root_logger_fh.setLevel(logging.DEBUG)
root_logger_fh.setFormatter(logger_fmt)
root_logger.addHandler(root_logger_sh)
root_logger.addHandler(root_logger_fh)