Skip to content

Instantly share code, notes, and snippets.

@inokappa
Last active February 20, 2016 23:21
Show Gist options
  • Save inokappa/50421d9e9b2a2a7b6cea to your computer and use it in GitHub Desktop.
Save inokappa/50421d9e9b2a2a7b6cea to your computer and use it in GitHub Desktop.
Python logger のハンドラに slack Incoming Webhook を使う例
# -*- coding:utf-8 -*-
import sys
import time
import logging
from slack_log_handler import SlackLogHandler
#
# logger の基本設定
#
logger = logging.getLogger()
logger.setLevel(logging.DEBUG)
formatter = logging.Formatter('%(asctime)s [%(levelname)s] %(message)s')
#
# 標準出力 Handler
#
stream = logging.StreamHandler()
stream.setLevel(logging.DEBUG)
stream.setFormatter(formatter)
#
# Slack Handler
#
slack = SlackLogHandler(
os.getenv('WEBHOOK_URL'),
username = 'foobar',
emojis = {
logging.INFO: ':grinning:',
logging.WARNING: ':white_frowning_face:',
logging.ERROR: ':persevere:',
logging.CRITICAL: ':confounded:',
}
)
slack.setLevel(logging.DEBUG)
slack.setFormatter(formatter)
#
# logger に Handler を追加
#
logger.addHandler(stream)
logger.addHandler(slack)
#
# main
#
if __name__ == "__main__":
args = sys.argv
if len(sys.argv) > 1:
if args[1] == "debug":
logger.debug('Debug です')
elif args[1] == "info":
logger.info('Info です')
elif args[1] == "warn":
logger.warn('Warn です')
elif args[1] == "error":
logger.error('Error です')
elif args[1] == "crit":
logger.critical('Critical です')
else:
print 'debug | info | warn | error | crit'
else:
print 'debug | info | warn | error | crit'
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment