我正在考虑从我的Android设备定期向服务器发送日志信息的最佳方法。到目前为止,我还没有找到任何关于如何正确完成的资源。我已经有一台接受JSON的服务器,可以在SQL中存储日志信息。如何打包日志以通过JSON发送?我宁愿将其作为java对象发送。我正在使用logback-android进行日志记录。
此应用不会在Google Play上发布,我也无法使用第三方服务。
由于
答案 0 :(得分:1)
如果你真的需要发送JSON,我会说roll your own appender。 Logstash似乎可以部分地满足您的需求。您尚未指定与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。