Source code for cobald.daemon.core.logger

import sys
import logging
import logging.handlers

[docs]def create_handler(target: str): """Create a handler for logging to ``target``""" if target == "stderr": return logging.StreamHandler(sys.stderr) elif target == "stdout": return logging.StreamHandler(sys.stdout) else: return logging.handlers.WatchedFileHandler(filename=target)
[docs]def initialise_logging(level: str, target: str, short_format: bool): """Initialise basic logging facilities""" try: log_level = getattr(logging, level) except AttributeError: raise SystemExit( "invalid log level %r, expected any of 'DEBUG'," "'INFO', 'WARNING', 'ERROR' or 'CRITICAL'" % level ) from None handler = create_handler(target=target) logging.basicConfig( level=log_level, format="%(asctime)-15s (%(process)d) %(message)s" if not short_format else "%(message)s", datefmt="%Y-%m-%d %H:%M:%S", handlers=[handler], )