Source code for aeolus.log

"""Logging utilities."""

from datetime import datetime
from pathlib import Path
import sys
from typing import Optional, Union

import loguru
from loguru import logger

__all__ = ("create_logger",)


[docs] def create_logger( script_path: Path, subdir: Optional[Union[str, Path]] = "logs" ) -> loguru._logger.Logger: """Create a logger using loguru.""" logpath = script_path.parent / subdir logpath.mkdir(exist_ok=True) logger.configure( handlers=[ {"sink": sys.stdout, "level": "INFO"}, { "sink": logpath / ( f"log_{script_path.stem}" f"_{datetime.now():%Y-%m-%d_%H%M%S}.log" ), "level": "DEBUG", }, ] ) return logger