Source code for hal.streams.logger

#!/usr/bin/env python3
# coding: utf-8


""" Logging module """

import logging
import threading

LOG_THREAD_FORMAT = "thread-{} {}"  # when logging # threads
LOG_FORMAT = "%(asctime)s - %(name)s - %(levelname)s - %(message)s"
CUSTOM_LOG_FORMAT = "%(asctime)s - %(levelname)s - %(module)s - %(message)s"

LOG_LEVEL = logging.DEBUG

LOGGER = logging.getLogger("hal")
LOGGER.setLevel(LOG_LEVEL)

STREAM_HANDLER = logging.StreamHandler()
STREAM_HANDLER.setLevel(LOG_LEVEL)
STREAM_HANDLER.setFormatter(logging.Formatter(LOG_FORMAT))

LOGGER.addHandler(STREAM_HANDLER)


[docs]def get_logger(): """Gets default logger :return: logger """ return LOGGER
[docs]def log_message(*message): """Logs message :param message: message to log """ logger = get_logger() logger.debug(" ".join(message))
[docs]def log_error(*error, cause=None): """Logs error :param error: error to log :param cause: (optional) cause of error """ thread_id = threading.current_thread().ident text = " ".join(error) if cause: text += " due to " + str(cause) logger = get_logger() logger.error(LOG_THREAD_FORMAT.format(thread_id, text))
[docs]def get_custom_logger(logger_name): formatter = logging.Formatter(fmt=CUSTOM_LOG_FORMAT) handler = logging.StreamHandler() handler.setFormatter(formatter) logger = logging.getLogger(logger_name) logger.setLevel(logging.DEBUG) logger.addHandler(handler) return logger