Stackdriver Logback appender 停止应用程序
Stackdriver Logback appender stops application
我在使用 google-cloud-logging-logback 库将日志写入 Stackdriver 时遇到问题。当我将 appender 添加到 logback 配置时,应用程序不会启动,只会停止并显示以下日志:
09:34:37,755 |-INFO in ch.qos.logback.classic.joran.action.ConfigurationAction - Setting ReconfigureOnChangeTask scanning period to 10 seconds
09:34:37,769 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - About to instantiate appender of type [ch.qos.logback.core.ConsoleAppender]
09:34:37,769 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - Naming appender as [console]
09:34:37,772 |-INFO in ch.qos.logback.core.joran.action.NestedComplexPropertyIA - Assuming default type [ch.qos.logback.classic.encoder.PatternLayoutEncoder] for [encoder] property
09:34:37,774 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - About to instantiate appender of type [com.google.cloud.logging.logback.LoggingAppender]
09:34:37,785 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - Naming appender as [cloud]
09:34:38,027 |-WARN in Logger[org.hibernate.validator.messageinterpolation.ResourceBundleMessageInterpolator] - No appenders present in context [default] for logger [org.hibernate.validator.messageinterpolation.ResourceBundleMessageInterpolator].
如您所见,没有错误,应用程序只是在尝试初始化 google appender 时停止。
这是我的 appender 配置:
<appender name="cloud" class="com.google.cloud.logging.logback.LoggingAppender">
<!-- Optional : filter logs at or above a level -->
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>DEBUG</level>
</filter>
<resourceType>global</resourceType> <!-- Optional : default: auto-detected, fallback: global -->
<flushLevel>INFO</flushLevel> <!-- Optional : default ERROR -->
</appender>
这是我的 logback 依赖项:
compile 'ch.qos.logback:logback-core:1.2.3'
compile 'ch.qos.logback:logback-access:1.2.3'
compile 'ch.qos.logback:logback-classic:1.2.3'
compile 'com.google.cloud:google-cloud-logging-logback:0.116.0-alpha'
你能帮我找出问题所在或如何显示导致应用程序停止的错误吗?
我创建了一个不同的项目,其中只包含登录到 Google,这次我收到一条错误消息。
问题的原因是guava库的版本错误,使用的版本太旧(<0.20)导致NoSuchMethod 异常。
太旧版本的 guava 库实际上是一个 intellij 问题,因为缓存,应用程序在 运行 直接从 IntelliJ 启动时正常,但在从 logback 初始化期间失败胖罐形式。在 IntelliJ 中使缓存失效很有帮助。
我在使用 google-cloud-logging-logback 库将日志写入 Stackdriver 时遇到问题。当我将 appender 添加到 logback 配置时,应用程序不会启动,只会停止并显示以下日志:
09:34:37,755 |-INFO in ch.qos.logback.classic.joran.action.ConfigurationAction - Setting ReconfigureOnChangeTask scanning period to 10 seconds
09:34:37,769 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - About to instantiate appender of type [ch.qos.logback.core.ConsoleAppender]
09:34:37,769 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - Naming appender as [console]
09:34:37,772 |-INFO in ch.qos.logback.core.joran.action.NestedComplexPropertyIA - Assuming default type [ch.qos.logback.classic.encoder.PatternLayoutEncoder] for [encoder] property
09:34:37,774 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - About to instantiate appender of type [com.google.cloud.logging.logback.LoggingAppender]
09:34:37,785 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - Naming appender as [cloud]
09:34:38,027 |-WARN in Logger[org.hibernate.validator.messageinterpolation.ResourceBundleMessageInterpolator] - No appenders present in context [default] for logger [org.hibernate.validator.messageinterpolation.ResourceBundleMessageInterpolator].
如您所见,没有错误,应用程序只是在尝试初始化 google appender 时停止。 这是我的 appender 配置:
<appender name="cloud" class="com.google.cloud.logging.logback.LoggingAppender">
<!-- Optional : filter logs at or above a level -->
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>DEBUG</level>
</filter>
<resourceType>global</resourceType> <!-- Optional : default: auto-detected, fallback: global -->
<flushLevel>INFO</flushLevel> <!-- Optional : default ERROR -->
</appender>
这是我的 logback 依赖项:
compile 'ch.qos.logback:logback-core:1.2.3'
compile 'ch.qos.logback:logback-access:1.2.3'
compile 'ch.qos.logback:logback-classic:1.2.3'
compile 'com.google.cloud:google-cloud-logging-logback:0.116.0-alpha'
你能帮我找出问题所在或如何显示导致应用程序停止的错误吗?
我创建了一个不同的项目,其中只包含登录到 Google,这次我收到一条错误消息。
问题的原因是guava库的版本错误,使用的版本太旧(<0.20)导致NoSuchMethod 异常。
太旧版本的 guava 库实际上是一个 intellij 问题,因为缓存,应用程序在 运行 直接从 IntelliJ 启动时正常,但在从 logback 初始化期间失败胖罐形式。在 IntelliJ 中使缓存失效很有帮助。