"""
Centralized logging configuration for the gunz_cm package.
Examples
--------
"""
__author__ = "Yeremia Gunawan Adhisantoso"
__email__ = "adhisant@tnt.uni-hannover.de"
__license__ = "Clear BSD"
__version__ = "1.0.0"
# =============================================================================
# STANDARD LIBRARY IMPORTS
# =============================================================================
import sys
# =============================================================================
# THIRD-PARTY IMPORTS
# =============================================================================
from loguru import logger
[docs]
def setup_logging(
verbose: bool,
) -> None:
"""
Configures logging for the CLI and application.
Parameters
----------
verbose : bool
If True, sets the console log level to DEBUG. Otherwise, sets it to INFO.
Returns
-------
None
Examples
--------
"""
#? Configure logging for the CLI.
logger.remove()
log_level = "DEBUG" if verbose else "INFO"
#? Concise console logger.
logger.add(
sys.stderr,
level=log_level,
format="<level>{message}</level>",
)
#? Verbose file logger.
logger.add(
"logs/app.log",
level="DEBUG",
rotation="10 MB",
retention="30 days",
enqueue=True,
backtrace=True,
diagnose=True,
)