如何将日志发送到JSON Web服务?

时间:2015-03-02 21:19:02

标签: java android json web-services logback

我正在考虑从我的Android设备定期向服务器发送日志信息的最佳方法。到目前为止,我还没有找到任何关于如何正确完成的资源。我已经有一台接受JSON的服务器,可以在SQL中存储日志信息。如何打包日志以通过JSON发送?我宁愿将其作为java对象发送。我正在使用logback-android进行日志记录。

此应用不会在Google Play上发布,我也无法使用第三方服务。

由于

2 个答案:

答案 0 :(得分:1)

如果你真的需要发送JSON,我会说roll your own appenderLogstash似乎可以部分地满足您的需求。您尚未指定与Web服务(套接字,REST,SOAP等)进行通信的方式。如果它是TCP套接字,则logstash中有appender。如果是REST,您可以使用Retrofit

如果使用Retrofit,则应缓冲日志消息列表,然后对所有日志消息发出POST请求,因为如果每个日志行使用HTTP请求,最终可能会发出太多HTTP调用。但是,如果出现问题,您最终可能会丢失一堆日志消息。根据您的使用情况调整缓冲区的大小。

答案 1 :(得分:0)

您可以使用SocketAppender通过网络从logback发送日志记录。

您需要一台可以在TCP套接字上接收数据的服务器,然后通过logback.xml配置logback以使用套接字appender。

从链接中,logback配置应如下所示:

<configuration>
   <appender name="SOCKET" class="ch.qos.logback.classic.net.SocketAppender">
      <remoteHost>${host}</remoteHost>
      <port>${port}</port>
      <reconnectionDelay>10000</reconnectionDelay>
      <includeCallerData>${includeCallerData}</includeCallerData>
   </appender>
   <root level="DEBUG">
      <appender-ref ref="SOCKET" />
   </root>  
</configuration>

对于套接字服务器,您可以自己滚动或使用其中的任何内容。一个相当有趣的选项是Chronicle