java - Log4j 1.x Sentry 附加器 : suppress warnings from specific sources for one appender

标签 java logging log4j log4j2 sentry

我正在使用 Sentry 的 Log4j 1.x 附加程序来跟踪错误日志记录。

我想忽略某些来源的警告,例如来自记录器dre.mytest。我可以使用 log4j.properties 文件来执行此操作吗?目前看起来是这样的。

# 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

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

最佳答案

使用另一个附加程序解决了它:

# 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>

关于java - Log4j 1.x Sentry 附加器 : suppress warnings from specific sources for one appender,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43975383/

相关文章:

java - 捕获 Spring Integration DSL 错误配置异常?

logging - 如何为 slf4j 标记配置 logback.xml 文件

database - 是否有用于审计持久化对象的数据库设计模式?

php - 登录到从php触发的exec()命令的文件输出

java - 执行 TestNG 测试时捕获 Log4j 输出

java - 每次登录我的 Spring Boot 项目时都会重定向到错误页面

java - 使用 UDP 的服务器-客户端

java - Log4j 不打印第 3 方日志(Spring.Hibernate 等)到 RollingFileAppender

java - 向 arraylist 添加附加信息

java - 获取 Logger 的惯用 Kotlin 方式是什么?