Exemplo n.º 1
0
def initLogger(slackUrl=None):
    """Return logger."""
    logger = logging.getLogger()
    logger.setLevel(logging.DEBUG)
    formatter = logging.Formatter('%(asctime)s [%(levelname)s] %(message)s')
    #
    stream = logging.StreamHandler()
    stream.setLevel(logging.INFO)
    stream.setFormatter(formatter)
    logger.addHandler(stream)
    #
    if slackUrl is not None and len(slackUrl) > 0:
        slack = SlackLogHandler(
            slackUrl,
            username='******',
            emojis={
                logging.INFO: ':grinning:',
                logging.WARNING: ':white_frowning_face:',
                logging.ERROR: ':persevere:',
                logging.CRITICAL: ':confounded:',
            })
        slack.setLevel(logging.INFO)
        slack.setFormatter(formatter)
        logger.addHandler(slack)
    return logger
Exemplo n.º 2
0
def getSlackHandler(level, formatter):
    from slack_log_handler import SlackLogHandler
    if level is None:
        return None
    slackHandler = SlackLogHandler(SLACK_WEBHOOK_URL, username=SLACK_USERNAME)
    slackHandler.setLevel(level)
    slackHandler.setFormatter(formatter)
    return slackHandler
Exemplo n.º 3
0
def get_module_logger(name=None):
    global loggers
    if 'loggers' not in globals():
        loggers = {}
    
    if name is None:
        name = __name__
    if loggers.get(name):
        return loggers.get(name)
    
    # logger の基本設定
    logger = getLogger(name)
    logger.setLevel(LOG_LEVEL_BASE)
    formatter = Formatter("%(asctime)s :%(filename)-10s %(lineno)-4d:%(levelname)-8s:%(funcName)-22s:%(message)s")
    
    # 標準出力 Handler
    sh = StreamHandler()
    logger.addHandler(sh)
    sh.setLevel(LOG_LEVEL_BASE)
    sh.setFormatter(formatter)
    
    # ファイル出力 Handler
    if LOG_FILE_DIR is not None:
        fh = FileHandler(LOG_FILE_DIR)
        fh.setLevel(LOG_LEVEL_FILE)
        logger.addHandler(fh)
        fh.setFormatter(formatter)
    
    # slack への通知
    if SLACK_WEBHOOK_URL is not None:
        slack = SlackLogHandler(
            SLACK_WEBHOOK_URL,
            username = HOSTNAME,
            emojis = {
                logging.INFO: ':cubimal_chick:',
                logging.WARNING: ':cloud:',
                logging.ERROR: ':japanese_goblin:',
                logging.CRITICAL: ':exploding_head:',
            }
        )
        slack.setLevel(LOG_LEVEL_SLACK)
        slack.setFormatter(formatter)
        logger.addHandler(slack)
    
    logger.propagate = False
    loggers[name] = logger
    
    ln = lambda nolevel: logging.getLevelName(nolevel)
#     logger.info(f'''
# 【 LOG CONFIG 】
#     - LOG_LEVEL_BASE: {ln(LOG_LEVEL_BASE)},
#     - LOG_FILE_DIR: {LOG_FILE_DIR},
#     - LOG_LEVEL_FILE: {ln(LOG_LEVEL_FILE)},
#     - SLACK_WEBHOOK_URL: {SLACK_WEBHOOK_URL},
#     - LOG_LEVEL_SLACK: {ln(LOG_LEVEL_SLACK)},
#     ''')
    return logger
Exemplo n.º 4
0
def initialize_slack_logger(logger=None, *args, **kwargs):
    try:
        tag = os.environ.get('TAGS', 'worker')
        from slack_log_handler import SlackLogHandler
        slack_handler = SlackLogHandler(
            webhook_url=app.config["SLACK_WEBHOOK_URL"],
            channel=app.config["SLACK_CHANNEL"],
            format='{0} %(levelname)s - %(asctime)s - %(name)s - %(message)s'.
            format(tag))
        slack_handler.setLevel(logging.ERROR)
        logger.addHandler(slack_handler)
    except urllib.error.HTTPError:
        LOGGER.info(
            "******************** Slack webhook is not working *********************"
        )
Exemplo n.º 5
0
import os
import logging
from slack_log_handler import SlackLogHandler

WEBHOOK_URL = os.getenv('SLACK_URL')

slack_handler = SlackLogHandler(WEBHOOK_URL)
slack_handler.setLevel(logging.WARNING)

logger = logging.getLogger(__name__)
logger.addHandler(slack_handler)

logger.error('Oh my god, an error occurred!')
Exemplo n.º 6
0
def get_slack_handler():
    from slack_log_handler import SlackLogHandler
    slack_handler = SlackLogHandler(SLACK_WEBHOOK_URL, username=SLACK_USERNAME)
    return slack_handler