【发布时间】:2019-01-03 14:30:16
【问题描述】:
我正在登录到 Logback 并配置了 Stackdriver Logging appender,如下所示:
<appender name="CLOUD" class="com.google.cloud.logging.logback.LoggingAppender">
<log>application.log</log>
<resourceType>generic_node</resourceType>
<flushLevel>INFO</flushLevel>
</appender>
日志条目显示在 Stackdriver Logging 控制台中:
{
insertId: "[...]"
labels: {
levelName: "INFO"
levelValue: "20000"
}
logName: "[...]"
receiveTimestamp: "2019-01-03T13:42:10.888423743Z"
resource: {
labels: {
location: ""
namespace: ""
node_id: ""
project_id: "[...]"
}
type: "generic_node"
}
severity: "INFO"
textPayload: "client disconnected"
timestamp: "2019-01-03T13:42:10.841Z"
}
但是,我缺少有关日志消息源自的记录器的信息。具体来说,假设我记录这样的消息:
import org.slf4j.LoggerFactory
val log = LoggerFactory.getInstance("component-a")
log.warn("temperature in hell fell below 100°C")
然后我想看看日志消息来自名为“component-a”的记录器。我发现在 Stackdriver Logging 文档中没有提到如何实现这一点。我想我可以配置一个LoggingEnhancer 来使用记录器的名称来增强每个日志条目,但是在增强日志条目时我没有关于这个记录器的信息。
是否有(希望是“规范的”)解决方案?
【问题讨论】:
-
对于Log Entries,可以设置标签;但是,在使用 LoggerFactory 时,我找不到任何设置标签的方法。我建议在以下 github 链接上创建一个功能请求,以添加一个功能,您可以在使用 LoggerFactory 时设置标签:github.com/googleapis/google-cloud-java/issues
标签: logging logback stackdriver