Source code for qibosoq.log
"""Loggers configuration."""
import logging
import logging.handlers
import os
from pathlib import Path
from typing import Tuple
import qibosoq.configuration as cfg
[docs]
def configure_logger(name: str, filename: str, backup_count: int):
"""Create and configure logger."""
# if the log directory does not exsist, create it
dir_path = Path(filename).parent
if not dir_path.exists():
dir_path.mkdir()
if name is not None:
new_logger = logging.getLogger(name)
else:
new_logger = logging
new_logger.setLevel(logging.DEBUG)
formatter = logging.Formatter(
"%(levelname)s :: %(asctime)s :: %(message)s", "%Y-%m-%d %H:%M:%S"
)
handler = logging.handlers.RotatingFileHandler(
filename, mode="w", backupCount=backup_count, delay=True
)
if os.path.isfile(filename):
handler.doRollover()
handler.setFormatter(formatter)
new_logger.addHandler(handler)
return new_logger
[docs]
def define_loggers() -> Tuple[logging.Logger, logging.Logger]:
"""Define main logger and program logger."""
main = configure_logger(cfg.MAIN_LOGGER_NAME, cfg.MAIN_LOGGER_FILE, 5)
program = configure_logger(cfg.PROGRAM_LOGGER_NAME, cfg.PROGRAM_LOGGER_FILE, 3)
return main, program