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

Java 如何将日志发送到JSON web服务?,java,android,json,web-services,logback,Java,Android,Json,Web Services,Logback,我正在考虑将日志信息定期从android设备发送到服务器的最佳方式。到目前为止,我还没有找到任何关于如何正确完成这项工作的资源。我已经有了一个服务器,它接受JSON并可以将日志信息存储在SQL中。如何打包日志以通过JSON发送?我更愿意将其作为java对象发送。我正在使用logback android进行日志记录 此应用程序将不会在Google Play上发布,我无法使用第三方服务 谢谢您可能可以使用通过网络从logback发送日志 您需要一个服务器,该服务器可以接收TCP套接字上的数据,然后通

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

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

谢谢

您可能可以使用通过网络从logback发送日志

您需要一个服务器,该服务器可以接收TCP套接字上的数据,然后通过logback.xml配置logback以使用套接字追加器

从链接上看,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>


.

如果您真的需要发送JSON,我会说。似乎部分做了你需要的。您尚未指定如何与web服务通信(套接字、REST、SOAP等)。如果是TCP套接字,则日志存储中有附加器。如果是休息,你可以使用


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

Java对象是个坏主意。最好使用只包含必要字段的自定义light wight数据结构。顺便问一下:你如何在Android端存储日志数据?@Robert什么样的数据结构才是好的轻量级数据结构?目前它正在写入日志文件,但我正在考虑将其更改为SQLite@Robert您知道如何从SQLite和/或文件中获取日志以解析为JSON对象吗?执行SQL查询,为结果中的每一行创建一个JSON对象,并将数据库响应中的字段添加到JSON对象中?我想挂接到一个接受JSON对象的现有日志web服务中。因为这个原因,SocketAppender不能满足我的需要。啊。。。Logstash似乎很有用,因为它使用JSON登录,我将通过REST进行通信,并且我已经实现了改造。我只需要发送一个json格式的EventLog对象数组。我应该使用哪种Appender?正如您所说,在将事件日志对象发送到服务器之前,我希望有一个事件日志对象列表。日志将每隔一小时、几小时或一天定期发送。