dctap2shex / dctap /loggers.py
rimpo's picture
feat: dctap-python files
28c59d9
"""Loggers: warnings to stderr, warnings to file, verbose debug info to file."""
import logging
import sys
PLAIN_FORMATTER = logging.Formatter("%(levelname)s %(message)s")
TIMESTAMP_FORMATTER = logging.Formatter(
"%(asctime)s %(levelname)s %(message)s", "%Y-%m-%d %H:%M"
)
def stderr_logger():
"""Initialize logger for printing messages, INFO and higher, to standard error."""
stderr_info_logger = logging.getLogger("stderr_logger")
stderr_info_logger.setLevel(logging.INFO)
stderr_info_logger_handler = logging.StreamHandler(sys.stderr)
stderr_info_logger_handler.setLevel(logging.INFO)
stderr_info_logger.addHandler(stderr_info_logger_handler)
stderr_info_logger_handler.setFormatter(PLAIN_FORMATTER)
return stderr_info_logger
def warning_logger(output_filename="warnings.log"):
"""Logger for printing time-stamped messages, WARNING and higher, to file."""
warningfile_logger = logging.getLogger("warningfile_logger")
warningfile_logger.setLevel(logging.INFO)
warningfile_logger_handler = logging.FileHandler(output_filename, mode="w")
warningfile_logger_handler.setLevel(logging.WARNING)
warningfile_logger.addHandler(warningfile_logger_handler)
warningfile_logger_handler.setFormatter(TIMESTAMP_FORMATTER)
return warningfile_logger
def debug_logger(output_filename="debug.log"):
"""Logger for printing time-stamped messages, DEBUG and higher, to file."""
debugfile_logger = logging.getLogger("debugfile_logger")
debugfile_logger.setLevel(logging.DEBUG)
debugfile_logger_handler = logging.FileHandler(output_filename, mode="w")
debugfile_logger_handler.setLevel(logging.DEBUG)
debugfile_logger.addHandler(debugfile_logger_handler)
debugfile_logger_handler.setFormatter(TIMESTAMP_FORMATTER)
return debug_logger