0

假设我有只记录任何内容的 DemoServer 项目,并且我创建了另一个项目说 LogServer。所以这就是我想做的;我将同时运行这两个项目,因为 DemoServer 正在运行,它只会继续记录任何内容,并且在 LogServer 项目中,它应该能够访问 DemoServer 生成的日志并将其每 1 分钟保存到一个新的文本文件中。由于这是我第一次这样做,我发现很难弄清楚这两个项目将如何沟通?有人可以详细解释我如何实现这一目标吗?还请发布可能帮助我解决问题的链接。

4

2 回答 2

1

我会选择一个本地套接字,它在 Java 中实现起来非常简单,以后也可以在 DemoServer 和 LogServer 位于不同的机器上时使用。

开发它应该很容易:

  • 创建自己的LogMessage班级
  • 通过使用 TCP 套接字创建一个简单的客户端/服务器基础设施,看看这里
  • ObjectInputStream通过使用和ObjectOutputStream能够使用序列化来包装套接字流
  • 只需通过将日志封装在从一个进程到另一个进程的消息中来发送日志,就完成了
于 2012-06-22T08:36:41.517 回答
0

我建议您深入研究 oVirt源代码(您可以 git clone 源代码),看看我们如何处理日志收集器应用程序。
有许多选项可以解决您的问题 -
A. 让您的应用程序登录到共享存储(即 - nfs 共享)中 - 它和日志服务器都可以访问。一个 cron 作业将运行一个定期脚本,该脚本将把上次访问的文件(比方说 - 一个小时前)复制到日志服务器可以访问的文件夹中。
B. 使用 log4j 并编写您自己的 Appender,它将您希望日志服务器收集的内容也发送到日志服务器(通过 A 节中建议的文件,或通过任何其他方式) - 这样您就可以控制类别级别基于日志服务器实际可以读取的内容

于 2012-06-22T08:34:32.563 回答