tomcat - Sentry.io + Tomcat + JUL : all logs are sent to sentry

标签 tomcat java.util.logging sentry

我正在使用 Tomcat (7.0.70) + sentry(sentrysentry-spring)+ JUL 以及以下 logging.properties WEB-INF/classes 中的文件:

handlers = java.util.logging.FileHandler,java.util.logging.ConsoleHandler,io.sentry.jul.SentryHandler

# Default global logging level.
# Loggers and Handlers may override this level
.level = INFO

#Format
java.util.logging.SimpleFormatter.format = %1$tY-%1$tm-%1$td %1$tH:%1$tM:%1$tS %4$-8s --- %2$-100s : %5$s%6$s%n

# Handlers
# -----------------------------------------

# --- ConsoleHandler ---
# Override of global logging level
java.util.logging.ConsoleHandler.level = FINE
java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter

# --- FileHandler ---
java.util.logging.FileHandler.level = FINE
java.util.logging.FileHandler.pattern = ${catalina.base}/logs/application.%g.log
java.util.logging.FileHandler.limit = 50000
java.util.logging.FileHandler.count = 1
java.util.logging.FileHandler.formatter = java.util.logging.SimpleFormatter

io.sentry.jul.SentryHandler.level = SEVERE

我的问题是所有日志都被发送到 Sentry ,而不仅仅是 SEVERE 的日志。我还注意到,如果我更改了全局 .level,它会影响将哪些日志发送到 Sentry (即,如果我将其设置为 WARNING,则只会记录警告并且发送给 Sentry )。

你知道我做错了什么吗?

谢谢!

最佳答案

Do you have any idea what I am doing wrong?

如果我看右边source code , 它不会尝试从 LogManager 中读取设置.您可以扩展 SentryHandler 并让子类从 LogManager 读取并设置级别。或者您需要创建代码来找到 SentryHandler 并设置级别。

如果可能,请尝试在 $CATALINA_BASE/conf 而不是 WEB-INF/classes 中设置一些配置。

如果您查看 source code ,记录器级别仅在 addLogger 方法中设置一次。 WEB-INF/classes 将在 readConfiguration(ClassLoader) 中加载。如果任何类加载触发记录器创建,它可能发生在 readConfiguration(ClassLoader) 之前。在这种情况下,WEB-INF/classes logging.properties 永远不会更改记录器级别。

您应该能够在 $CATALINA_BASE/conf 中声明一些记录器级别,并在 WEB-INF/classes 中声明处理程序安装。

Try printing the logger tree来自应用程序类加载器。这可以很简单,只需在应用程序中包含一个 servlet 即可打印记录器树。也许某些东西正在重置您的配置,或者未在处理程序上设置级别。

关于tomcat - Sentry.io + Tomcat + JUL : all logs are sent to sentry,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46293943/

相关文章:

java - 使用 java.util.logging 的好例子

java - 如何让多个线程和类写入 Java 中的同一个日志文件?

java - Tomcat6 似乎没有加载我的 LogFormatter 类

php - `sentry/sdk 2.x`-如何注册错误/异常处理

tomcat - 如何配置嵌入式tomcat监听80和8443端口?

json - 如何使用tomcat服务器使json在jsp页面中工作?

linux - Tomcat配置环境变量的最佳方式

Tomcat 7 覆盖上下文路径

angular - 在 Angular 自定义错误处理程序中使用服务

python - 如何将异常发送到 django 项目的 Sentry