Kha*_*hah 6 scala slf4j google-cloud-platform google-cloud-logging google-cloud-stackdriver
我正在使用 Logback 和 SLF4J 进行 Stackdriver 日志记录,并且我正在遵循Google Cloud 中的示例。我的应用程序是用 Scala 编写的,并在 GCP 上的 Dataproc 集群上运行。
logback.xml 有以下内容。
<configuration>
<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>INFO</level>
</filter>
<log>application.log</log> <!-- Optional : default java.log -->
<resourceType>gae_app</resourceType> <!-- Optional : default: auto-detected, fallback: global -->
<enhancer>com.company.customer.utils.MyLoggingEnhancer</enhancer> <!-- Optional -->
<flushLevel>WARN</flushLevel> <!-- Optional : default ERROR -->
</appender>
<root level="info">
<appender-ref ref="CLOUD" />
</root>
</configuration>
Run Code Online (Sandbox Code Playgroud)
和 MyLoggingEnhancer 是
package com.company.customer.utils
import com.google.cloud.logging.LogEntry.Builder
import com.google.cloud.logging.LoggingEnhancer
class MyLoggingEnhancer extends LoggingEnhancer {
override def enhanceLogEntry(builder: Builder): Unit = {
builder
.addLabel("test-label-1", "test-value-1") //also not showing on the stack driver
}
}
Run Code Online (Sandbox Code Playgroud)
我正在类中构建日志对象
private val LOGGER: Logger = LoggerFactory.getLogger(this.getClass)
Run Code Online (Sandbox Code Playgroud)
我从记录器对象记录了一条消息,例如
LOGGER.info("Spark Streaming Started for MyApplication")
Run Code Online (Sandbox Code Playgroud)
问题是resourceType,并logName没有在为Stackdriver日志设置正确。logName自动设置为yarn-userlogs并resourceType设置为cloud_dataproc_cluster。我想设置resourceType = Global和logName = MyApp以便我可以在全局层次结构下过滤 MyApp 日志。
从logback.xml.
<resourceType>gae_app</resourceType>
Run Code Online (Sandbox Code Playgroud)
并通过添加这一行
<resourceType>global</resourceType>
Run Code Online (Sandbox Code Playgroud)
但没有运气。任何形式的帮助高度赞赏。我在 LoggingEnhancer 中提供的标签test-label-1也没有显示在 Stackdriver 上。
我在 Stackdriver 上的 Json Payload 是
{
insertId: "gn8clokwpjqptwo5h"
jsonPayload: {
application: "application_1568634817510_0189"
class: "com.MyClass"
container: "container_e01_1568634817510_0189_01_000001"
container_logname: "stderr"
filename: "application_1568634817510_0189.container_e01_1568634817510_0189_01_000001.stderr"
message: "Spark Streaming Started for MyApplication"
}
labels: {
compute.googleapis.com / resource_id: "1437319101399877659"
compute.googleapis.com / resource_name: "e-spark-w-2"
compute.googleapis.com / zone: "us"
}
logName: "projects/myProject/logs/yarn-userlogs"
receiveTimestamp: "2019-10-01T05:25:16.044579001Z"
resource: {
labels: {
cluster_name: "shuttle-spark"
cluster_uuid: "d1557db6-72ee-4873-a276-4bd4ea0e89bb"
project_id: "MyProjectId"
region: "us"
}
type: "cloud_dataproc_cluster"
}
severity: "INFO"
timestamp: "2019-10-01T05:25:10Z"
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
900 次 |
| 最近记录: |