Source code for tristan.diagnostics.diagnostics_log

"""
Logging configuration for Tristan diagnostics.
"""

import logging
import logging.config

logging_config = {
    "version": 1,
    "disable_existing_loggers": False,
    "formatters": {
        "default": {
            "class": "logging.Formatter",
            "format": "%(message)s",
        }
    },
    "handlers": {
        "console": {
            "level": "DEBUG",
            "class": "logging.StreamHandler",
            "formatter": "default",
            "stream": "ext://sys.stdout",
        }
    },
    "loggers": {
        "TristanDiagnostics": {
            "handlers": ["console"],
            "level": "DEBUG",
            "propagate": True,
        }
    },
}

logging.config.dictConfig(logging_config)


[docs]def config(logfile: str = None, write_mode: str = "a"): """Configure the logger. Args: logfile (str, optional): If passed, create a file handle for the logger to write\ a logfile output. Defaults to None. write_mode (str, optional): Writing mode for the logfile output. Defaults to "a". """ diag_logger = logging.getLogger("TristanDiagnostics") if logfile: fileFormatter = logging.Formatter( "%(asctime)s - %(levelname)s -- %(message)s", datefmt="%d-%m-%Y %I:%M:%S", ) FH = logging.FileHandler(logfile, mode=write_mode, encoding="utf-8") FH.setLevel(logging.INFO) FH.setFormatter(fileFormatter) diag_logger.addHandler(FH)