将日志文件流式传输到远程客户端

时间:2013-01-10 09:39:14

标签: java linux logging stream syslog

我有一个在远程服务器上运行的Java应用程序(debian linux)。该应用程序将运行时信息记录到文件中。

支持需要使用客户端工具(不在服务器上运行,但在支持的桌面上)分析日志。然后该工具需要远程访问

  1. 服务器上的旧日志文件
  2. 当前日志文件(实时增长)
  3. 我正在寻找一种好的(=标准的,灵活的,安全的,经过良好调试的等方式)将这些过去和现在的日志消息流式传输到我的客户端工具。

    怎么会这样做?

    是否存在提供此服务的库?

    syslog可以适应这个吗?

    编辑:出于隐私原因,日志文件应仅存储在远程服务器上,通常不会发送到中央日志服务。

2 个答案:

答案 0 :(得分:2)

为什么不将Log4j的功能用作通过TCP发送到远程服务器的日志文件? Log4j是一个标准的Java日志记录工具(众所周知/有充分文档记录),设置远程连接非常简单。

我过去曾使用它来跨网络进行传输,并在一个常见的可搜索目录结构中整理来自多台计算机的日志文件(当您不知道您的进程在哪里运行时,在网格环境中非常有用)

有关详细信息,请参阅this page

答案 1 :(得分:0)

最简单的方法是在Linux机器上设置samba,这样您就可以在更新日志时远程访问日志,而无需复制它们。


您可以使用rsync。这允许您在计算机之间安全地将更改复制到文件。即附加文件只会复制自上次rsync以来的更改。注意:您必须反复运行它才能看到更新。

如果可以修改工具以支持SSH,例如通过VFS,您可以像访问本地一样访问远程文件。