SlackLogHandler

python log handler,用于将日志打到slack

应用场景

运维系统的一些消息时希望通知到开发的。一般是整个发布完成后再抓去处理日志再用邮件等通知开发。 但这样不利于异常处理。希望把发布的一些信息实时的发布出来供开发订阅。

使用说明

class opsas.utils.SlackLogHandler(token, channel, logger=None)[source]

SlackLogHandler for python logging.logger object

Parameters
  • token (str) – slack app oauth token

  • channel (str) – slack channel name

  • logger (logging.logger,optional) – logger object for logging logs when slackloghandler,

Note

This slacklog handler used slack app to sendmessage.

Create a slack app and follower guides to allow it to connect and chat in channel https://api.slack.com/apps?new_app=1.

Examples

>>> import logging
>>> logger = logging.getLogger('slack')
>>> logging.basicConfig()
>>> slackLogHandler = SlackLogHandler(channel='test',token='xxx')
>>> logger.addHandler(slackLogHandler)
>>> logger.info("info")
>>> logger.warning("warnning")
>>> import logging
>>> logging.basicConfig()
>>> logger = logging.getLogger("slack")
>>> slackLogHandler = SlackLogHandler(channel='test',token='xxx')
>>> slackLogHandler.create_session('testDialog')
>>> logger.addHandler(slackLogHandler)
>>> logger.warning('warining')
create_session(name)[source]

By default,logs were send to slack channel directly. Can also start a dialog in slack channel and all logs send as reply to this message :param name: dialog name :type name: str

Returns

Return type

None