Source code for cedne.core.logger
"""
Logging configuration for CeDNe.
Use `from cedne.core.logger import logger` to log.
"""
import logging
logger = logging.getLogger("cedne")
logger.addHandler(logging.NullHandler())
[docs]
def configure_logging(
log_file: str | None = None, console: bool = True, level: int = logging.INFO
):
"""Configure CeDNe logging for scripts and notebooks.
Library imports stay quiet by default; applications can opt into console
and/or file logging without CeDNe creating files as an import side effect.
"""
logger.setLevel(level)
formatter = logging.Formatter("%(name)s - %(levelname)s - %(message)s")
for handler in list(logger.handlers):
if not isinstance(handler, logging.NullHandler):
logger.removeHandler(handler)
if log_file:
file_handler = logging.FileHandler(log_file, mode="w")
file_handler.setFormatter(formatter)
logger.addHandler(file_handler)
if console:
console_handler = logging.StreamHandler()
console_handler.setFormatter(formatter)
logger.addHandler(console_handler)
return logger