Я регистрируюсь в Logback и настроил приложение ведения журнала Stackdriver следующим образом:
<appender name="CLOUD" class="com.google.cloud.logging.logback.LoggingAppender">
<log>application.log</log>
<resourceType>generic_node</resourceType>
<flushLevel>INFO</flushLevel>
</appender>
Записи журнала отображаются в консоли ведения журнала Stackdriver:
{
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. Я полагаю, я мог бы настроить LoggingEnhancer
для улучшения каждой записи журнала с именем регистратора, но у меня нет информации об этом регистраторе при расширении записей журнала.
Есть ли (надеюсь, "каноническое") решение для этого?