我在GKE上的一个容器中运行Java/Scala应用程序,而Stackdriver中没有日志。
GCP控制台显示集群上启用了“StackDriver Kubernetes引擎监控”,并且禁用了“旧版StackDriver日志记录”。
我试过两种类型的日志文件,一种使用
ConsoleAppender
一个使用
com.google.cloud.logging.logback.LoggingAppender
但都不起作用。
如果我在gke中运行node.js应用程序,那么console.log条目会显示在stackdriver中。
为了添加一些可以帮助澄清的细节,我的主要应用程序容器是一个生成Java应用程序的节点应用程序。Stackdriver的节点应用程序日志显示,但Java应用程序日志不显示。我确实设置了
GOOGLE_APPLICATION_CREDENTIALS
环境变量到一个服务帐户,我使用该帐户有权写入数据存储、云存储和pubsub。我没有向该帐户添加日志权限,因为我发现有另一个容器或更低级别的进程可以写入日志。
我尝试的最后一个日志文件是:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<target>System.out</target>
<encoder>
<pattern>%X{akkaTimestamp} %-5level[%thread] %logger{0} - %msg%n</pattern>
</encoder>
</appender>
<appender name="ASYNC" class="ch.qos.logback.classic.AsyncAppender">
<appender-ref ref="STDOUT"/>
</appender>
<logger name="akka" level="INFO" />
<root level="INFO">
<appender-ref ref="STDOUT"/>
</root>
</configuration>
我错过了什么?