【发布时间】:2019-03-18 13:48:34
【问题描述】:
将应用程序(由 spring boot 和 kotlin 制成)部署到 Google App Engine 后,我可以使用
$ gcloud app logs tail 监控最新日志:
但它不显示应用程序输出的日志。
我必须使用浏览器去StackDriver 浏览在线日志。
这不方便。
另一种方法是使用命令行通过gcloud logging命令读取request_log:
gcloud logging read request_log --limit=10
但是它不支持tail模式,并且输出了太多的payload数据(比如labels,requestId,zone...blah...)。我尝试了很多格式,但仍然输出了太多的有效载荷。
我只是想看看logger.info("...")或更高级别的输出是什么
gcloud app logs tail 有什么办法也可以通过应用程序输出日志吗?或者以任何其他方式tail(监控)应用在控制台中的登录?
日志代码很简单(通过 slf4j):
@RestController
class WebhookController {
val logger = LoggerFactory.getLogger(javaClass)!!
@GetMapping("/")
fun index(req: HttpServletRequest): String {
logger.info("header : ")
for (headerName in req.headerNames) {
logger.info("\t{} = {}", headerName, req.getHeader(headerName))
}
logger.info("params : ")
req.parameterMap.forEach { (k, v) ->
logger.info("\t{} = {}", k, v)
}
return "Hello Spring Boot Kotlin "
}
}
环境:
logging.properties
.level = INFO
handlers=java.util.logging.ConsoleHandler
java.util.logging.ConsoleHandler.level=INFO
appengine-web.xml
<appengine-web-app xmlns="http://appengine.google.com/ns/1.0">
<version>1</version>
<threadsafe>true</threadsafe>
<runtime>java8</runtime>
<system-properties>
<property name="java.util.logging.config.file" value="logging.properties"/>
</system-properties>
</appengine-web-app>
和
Google Cloud SDK 220.0.0
app-engine-java 1.9.66
<kotlin.version>1.2.71</kotlin.version>
<springboot.version>2.0.5.RELEASE</springboot.version>
<spring.version>5.0.8.RELEASE</spring.version>
更新:浏览器示例中的 StackDriver:
我只对红圈部分感兴趣。但在gcloud app logs tail中没有输出
【问题讨论】:
标签: java spring-boot google-app-engine gcloud google-cloud-stackdriver