2016-11-29 79 views
0

我有一個應用程序在谷歌appengine上運行。 我想記錄從appengin到greylog2(我不想使用App Engine雲的日誌記錄,但greylog)如何從谷歌appengine登錄到graylog

這裏是我的聚甲醛的依賴:

 <dependency> 
     <groupId>org.graylog2</groupId> 
     <artifactId>gelfj</artifactId> 
     <version>1.1.15</version> 
     </dependency> 

這裏是我的代碼:

GelfMessage message = new GelfMessage("myMessage", "myMessage", new Date().getTime(), "1"); 
    message.setHost("appspot"); 
    message.setVersion("1.3"); 
    message.setFacility("F"); 
    GelfUDPSender gelfUDPSender; 
    gelfUDPSender = new GelfUDPSender("my-ip-address", 12202); 
    GelfSenderResult result = gelfUDPSender.sendMessage(message); 

當我在本地運行這個工作。但是,當我AppEngine上運行這個我看到以下消息:

Error for /worker 
java.lang.NoClassDefFoundError: java.nio.channels.DatagramChannel is a restricted class. 
Please see the Google App Engine developer's guide for more details. 
     at com.google.apphosting.runtime.security.shared.stub.java.nio.channels.DatagramChannel.<clinit>(DatagramChannel.java) 
     at org.graylog2.GelfUDPSender.initiateChannel(GelfUDPSender.java:31) 
     at org.graylog2.GelfUDPSender.<init>(GelfUDPSender.java:27) 

編輯: graylog防火牆的工作原理。 我需要爲appengine實例IP打開一個路由。 它有IP嗎?

有什麼方法可以獲得ip?

回答

0

1)不能使用org.graylog2罐子,因爲它不在The JRE Class White List中,應該使用java.net.URLConnection代替。看到docs

2)accourding到docs

的App Engine目前不提供一種方法來映射靜態IP地址 到應用程序