Stackdriver日志写作中的空指针异常

时间:2018-02-27 10:35:40

标签: java logging google-cloud-platform gcloud stackdriver

我在OSX上使用Java Stackdriver Logging Client库。

在我使用已安装和初始化的gcloud sdk开发ubuntu之前。在我的Mac上,gcloud已安装但尚未初始化。

首先我要设置我的环境变量:

Systemutil.createEnv("GOOGLE_CLOUD_PROJECT", "projectid");
Systemutil.createEnv("GOOGLE_APPLICATION_CREDENTIALS, "path/to/json/serviceaccount.json")

之后我想实例化我的日志记录客户端:

Logging logging = LoggingOptions.defaultInstance().service();

然后我得到了这个堆栈跟踪:

Exception in thread "main" com.google.cloud.logging.LoggingException: java.lang.NullPointerException
at com.google.cloud.logging.LoggingOptions$DefaultLoggingRpcFactory.create(LoggingOptions.java:62)
at com.google.cloud.logging.LoggingOptions$DefaultLoggingRpcFactory.create(LoggingOptions.java:54)
at com.google.cloud.ServiceOptions.rpc(ServiceOptions.java:399)
at com.google.cloud.logging.LoggingImpl.<init>(LoggingImpl.java:96)
at com.google.cloud.logging.LoggingOptions$DefaultLoggingFactory.create(LoggingOptions.java:43)
at com.google.cloud.logging.LoggingOptions$DefaultLoggingFactory.create(LoggingOptions.java:38)
at com.google.cloud.ServiceOptions.service(ServiceOptions.java:391)
at LucyLog.StackdriverLogging.write(StackdriverLogging.java:30)
at LucyLog.Lucy.write_Log(Lucy.java:85)
at LucyLog.Lucy.main(Lucy.java:81)

Caused by: java.io.IOException: java.lang.NullPointerException
at com.google.cloud.logging.spi.DefaultLoggingRpc.<init>(DefaultLoggingRpc.java:144)
at com.google.cloud.logging.LoggingOptions$DefaultLoggingRpcFactory.create(LoggingOptions.java:60)
... 9 more

Caused by: java.lang.NullPointerException
at com.google.cloud.logging.spi.DefaultLoggingRpc.<init>(DefaultLoggingRpc.java:122)
... 10 more

在我的Ubuntu上,实例化工作正常,那么gcloud的init是在后台进行的,我现在必须在Mac上的Java代码中进行操作?

备注:设置cloud_project env正在运行 - 如果我对该行进行评论,我将得到另一个例外。如果我评论设置凭据的行,则异常不会更改(可能在身份验证之前发生错误?)

1 个答案:

答案 0 :(得分:0)

我还在Stackdriver社区论坛中发布了我的问题 - 他们给了我一些线索,我可能需要更新我的客户端lib版本:link

我正在使用版本1.17 now- poml.xml依赖:

<dependency>
    <groupId>com.google.cloud</groupId>
    <artifactId>google-cloud-logging</artifactId>
    <version>1.17.0</version>
</dependency>

现在一切正常。