【发布时间】:2018-02-21 04:27:33
【问题描述】:
我使用 raven.handlers.logging 中的 SentryHandler 来跟踪 Sentry 中任何更高级别的日志。我的日志消息使用.format() 的自定义内容动态填充,因此文本消息本身不一定总是具有相同的内容。例如:
import logging
from raven.handlers.logging import SentryHandler
from raven.conf import setup_logging
# Create a "basic" logger
logger = logging.getLogger("root")
# Create a Sentry logger handler
sh = SentryHandler("https://******@sentry.io/******")
sh.setLevel(logging.WARNING)
setup_logging(sh)
# Send the desired message to Sentry via logger
if SomeInteresetingWarning():
logger.warning("{} missing files in {} directiories!".format(num_files,num_dirs))
一切都好,只是这会导致每条独特的消息都被视为独特的警告,这当然不是真的。
在 GitHub 上有一个很好的 QA 涵盖了这个问题,但那里提供的解决方案仅适用于字符串,格式为 old-fashioned %s-style。
是否有人知道如何实现正确的 Sentry 消息分组(聚合),而无需将字符串格式从 format() 重新设计回 %s 占位符?
【问题讨论】:
标签: python logging format sentry