Source code for datacatalog.slots.logger

import os
import sys
import logging
from enum import Enum
from .. import settings

__all__ = ['get_logger']

LOG_NAME = 'persister'


class LogFormatter(object):
    STANDARD = logging.Formatter('%(name)s.%(levelname)s: %(message)s')
    VERBOSE = logging.Formatter(("%(levelname)s in %(filename)s:%(funcName)s "
                                 "at line %(lineno)d occured at %(asctime)s\n\n\t%(message)s\n\n"
                                 "Full Path: %(pathname)s\n\nProcess Name: %(processName)s"))


[docs]def get_logger(module_name=None, level=None, verbose=False): if module_name is None: module_name = __name__ if level is None: level = settings.LOG_LEVEL logger = logging.getLogger(module_name) logger.setLevel(logging.getLevelName(level)) loghandler = logging.StreamHandler() if verbose is True: loghandler.setFormatter(LogFormatter.VERBOSE) else: loghandler.setFormatter(LogFormatter.STANDARD) if len(logger.handlers) <= 0: logger.addHandler(loghandler) return logger