Mar*_*erc 6 python format logging sentry
我使用SentryHandlerfromraven.handlers.logging来跟踪 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))
Run Code Online (Sandbox Code Playgroud)
一切都很好,只是这会导致每条独特的消息都被视为独特的警告,这当然不是真的。
GitHub 上有一个很好的QA涵盖了这个问题,但那里提供的解决方案仅适用于使用老式风格 格式化的字符串%s。
有谁知道如何实现正确的 Sentry 消息分组(聚合),而不必重新设计字符串格式从format()回%s占位符?
小智 1
现在您可以: https: //docs.python.org/3/howto/logging-cookbook.html#use-of-alternative-formatting-styles
要点是使用 style="{" 的格式化程序。