【问题标题】:java logging/Log Serverjava日志/日志服务器
【发布时间】:2012-06-22 08:25:54
【问题描述】:

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

【问题讨论】:

  • 准备使用的 API 可能会有所帮助,而不是创建自己的日志服务器
  • 不,我真的需要学习如何创建自己的日志服务器
  • 您真正关心的似乎是进程间通信(可能作为练习?),而日志记录与它没有太大关系。除非您想要 10 个答案提及各种现有的日志框架,否则请尝试在您的问题中关注这一点。
  • 是的,我真的没有记录日志的问题,我只是想弄清楚这两个应用程序如何通信。实际上我正在使用 log4j

标签: java jakarta-ee logging client-server


【解决方案1】:

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

开发它应该很容易:

  • 创建自己的LogMessage
  • 使用 TCP 套接字创建一个简单的客户端/服务器基础架构,看看here
  • 使用ObjectInputStreamObjectOutputStream 包装套接字流,以便能够使用serialization
  • 只需通过将日志封装在从一个进程到另一个进程的消息中发送日志即可完成

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2016-06-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-26
      • 2011-04-25
      • 1970-01-01
      相关资源
      最近更新 更多