我的应用程序在dropwizard中,最近我已将其上传到gcp。对于日志记录,我们需要使用stackdriver。我不是gcp expert,只是关注https://cloud.google.com/logging/docs/setup/java。我使用日志记录追加程序的方式来显示堆栈驱动程序上的日志。
我了解使用日志记录附加程序实现stackdriver日志记录,我们需要做以下两件事:
每当我选择部署应用程序的实例时,我都看不到堆栈驱动程序上的日志。
答案 0 :(得分:0)
对于dropwizard来说,它有点复杂,因为非常认为。这是将堆栈驱动程序日志记录与云日志记录结合使用所需的步骤。注意:我使用了0.77.0-alpha
库的com.google.cloud:google-cloud-logging-logback
版本。
AppenderFactory<ILoggingEvent>
并带有JsonTypeName
批注的类:@JsonTypeName("stackdriver")
public class StackdriverLoggingAppenderFactory implements AppenderFactory<ILoggingEvent> {
@Override
public Appender<ILoggingEvent> build(LoggerContext context, String applicationName,
LayoutFactory<ILoggingEvent> layoutFactory,
LevelFilterFactory<ILoggingEvent> levelFilterFactory,
AsyncAppenderFactory<ILoggingEvent> asyncAppenderFactory) {
final LoggingAppender appender = new LoggingAppender();
appender.setName("stackdriver");
appender.setContext(context);
appender.start();
return appender;
}
}
logging:
level: INFO
appenders:
- type: stackdriver
io.dropwizard.logging.AppenderFactory
的文件添加到src/main/resources/META-INF.services
。该文件应包含在步骤1中创建的标准软件包和类名,例如com.acme.gcp.logging.StackdriverLoggingAppenderFactory
GOOGLE_CLOUD_PROJECT
和运行实例的项目ID的值。我通过在笔记本电脑上本地运行应用程序进行了测试,并且可以在Stackdriver Logging
下的Google Cloud Console中看到日志条目。