创建自定义松弛日志处理程序不起作用
Creating a custom slack log handler doesn't work
我想创建自定义 python 日志记录 Handler
以通过 slack 发送消息。
我发现了这个 package 但是它不再更新,所以我创建了一个非常简单的版本。然而它似乎不起作用,我添加了一个 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
我看到了这个 answer 并尝试也继承自 StreamHandler
但无济于事。
我想我遗漏了一些非常基本的东西。
经过编辑删除松弛逻辑以便于复制。
经过一些额外的搜索,我发现为处理程序设置的日志记录级别与为记录器设置的级别不同。
意思是,添加:
logger.setLevel(logging.INFO)
解决了问题。
我想创建自定义 python 日志记录 Handler
以通过 slack 发送消息。
我发现了这个 package 但是它不再更新,所以我创建了一个非常简单的版本。然而它似乎不起作用,我添加了一个 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
我看到了这个 answer 并尝试也继承自 StreamHandler
但无济于事。
我想我遗漏了一些非常基本的东西。
经过编辑删除松弛逻辑以便于复制。
经过一些额外的搜索,我发现为处理程序设置的日志记录级别与为记录器设置的级别不同。
意思是,添加:
logger.setLevel(logging.INFO)
解决了问题。