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
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
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
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 *********************" )
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!')
def get_slack_handler(): from slack_log_handler import SlackLogHandler slack_handler = SlackLogHandler(SLACK_WEBHOOK_URL, username=SLACK_USERNAME) return slack_handler