当前位置: 首页 > 知识库问答 >
问题:

log4j1。x Sentry appender:为一个appender抑制来自特定来源的警告

杜良骏
2023-03-14

我用的是log4j1。x appender用于Sentry跟踪错误记录。

我想忽略来自某些来源的警告,例如来自记录器dre的警告。mytest。我可以用log4j来做这个吗。属性文件?现在看起来是这样的。

# Root logger option
log4j.rootLogger=INFO, stdout, Sentry

# Configure the Sentry appender, overriding the logging threshold to the WARN level
log4j.appender.Sentry=com.getsentry.raven.log4j.SentryAppender
log4j.appender.Sentry.threshold=WARN
log4j.appender.Sentry.tags=system:annotator

我试过了

log4j.logger.dre.mytest=INFO, stdout
log4j.logger.dre.mytest=ERROR, Sentry

但这不会将任何低于错误的内容记录到标准输出。

共有1个答案

魏硕
2023-03-14

使用另一个appender解决了此问题:

# Root logger option
log4j.rootLogger=INFO, stdout, SentryWarn

# Direct log messages to stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n

# Configure Sentry appenders, each with their own threshold
log4j.appender.SentryInfo=com.getsentry.raven.log4j.SentryAppender
log4j.appender.SentryInfo.threshold=INFO
log4j.appender.SentryInfo.tags=system:app

log4j.appender.SentryWarn=com.getsentry.raven.log4j.SentryAppender
log4j.appender.SentryWarn.threshold=WARN
log4j.appender.SentryWarn.tags=system:app

log4j.appender.SentryError=com.getsentry.raven.log4j.SentryAppender
log4j.appender.SentryError.threshold=ERROR
log4j.appender.SentryError.tags=system:app

# To suppress warnings from loggers to Sentry, use the following
# log4j.logger.<your-logger-here>=INFO, stdout, SentryError
# log4j.additivity.<your-logger-here> = false

# To send info and higher to Sentry, use the following
# log4j.logger.dre.mytest=INFO, stdout, SentryInfo
# log4j.additivity.dre.mytest = false

升级到Log4j 2后,它看起来像这样:

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN"
               packages="org.apache.logging.log4j.core,com.getsentry.raven.log4j2">
    <Appenders>
        <Console name="Console" target="SYSTEM_OUT">
            <PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n"/>
        </Console>
        <Raven name="Sentry">
            <tags>system:app</tags>
        </Raven>
    </Appenders>
    <Loggers>
        <Root level="info">
            <AppenderRef ref="Console"/>
            <AppenderRef ref="Sentry" level="warn"/>
        </Root>
        <Logger name="dre.test"
                level="INFO"
                additivity="false">
            <AppenderRef ref="Console"/>
            <AppenderRef ref="Sentry" level="error"/>
        </Logger>
    </Loggers>
</Configuration>
 类似资料:
  • 问题内容: 当我运行程序时,Pandas每次都会发出如下“未来警告”。 我得到了味精,但我只是想一次又一次地停止Pandas显示此类味精,是否可以设置任何buildin参数以使Pandas不会弹出“未来警告”? 问题答案: 在github上发现了这个…

  • 如何修改此ffmpeg字符串以生成具有不同视频比特率的多个输出?这是为了在yadif=1消耗大量电力时节省时间。而且,无法让它在windows中接受yadif_cuda。 ffmpeg-y-f lavfi-i anullsrc=cl=mono:sample_rate=48000-i“test.mxf”-vf yadif=1-s 1920:1080-c:v h264-nvenc-强制关键帧“expr

  • 问题内容: 我们总是被教导要确保在switch语句中使用 break 来避免掉线。 Java编译器会针对这些情况发出警告,以帮助我们避免犯小错误(而是严重错误)。 但是,我将案例检查作为功能使用(我们不必在这里进行介绍,但是它提供了一种非常优雅的解决方案)。 但是,编译器会吐出大量警告,这些警告可能会掩盖我需要了解的警告。我知道如何更改编译器以忽略所有掉线警告,但是我想在逐个方法的基础上实施此操作

  • 我从lint得到以下错误:。有时这是预料之中的,因为平板电脑和手机的布局不同。这就是为什么皮棉警告的最后几句话: 在某些情况下,这是故意的。例如,您可能有一个专用的大型平板电脑布局,其中添加了一些手机版本布局中不存在的额外小部件。只要访问布局资源的代码小心地正确处理这个问题,它就是有效的。在这种情况下,可以对给定的额外或缺少的视图或整个布局取消此lint检查 很好,我同意。我想抑制警告,但仅针对我

  • 但是我似乎不明白为什么在标签上调用也不起作用。