Я хочу создать пользовательский python протокол Handler
для отправки сообщений через slack.
Я нашел этот пакет , но он больше не обновляется, поэтому я создал очень голый костная версия этого. однако, похоже, что это не работает, я добавил вызов print
для целей отладки, и emit
не вызывается.
import logging
# import slacker
class SlackerLogHandler(logging.Handler):
def __init__(self, api_key, channel):
super().__init__()
self.channel = channel
# self.slacker = slacker.Slacker(api_key)
def emit(self, record):
message = self.format(record)
print('works')
# self.slacker.chat.post_message(text=message, channel=self.channel)
slack_handler = SlackerLogHandler('token', 'channel')
slack_handler.setLevel(logging.INFO)
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
slack_handler.setFormatter(formatter)
logger = logging.getLogger('my_app')
logger.addHandler(slack_handler)
logger.info('info_try') # 'works' is not printed and no slack message is sent
Я видел этот ответ и пытался также унаследовать от StreamHandler
, но безрезультатно.
Я думаю, что мне не хватает чего-то очень c.
отредактировано для удаления слабых логи c для удобства воспроизведения.