繁体   English   中英

如何在 Java 中的多个线程之间共享公共日志文件

[英]How to share common log file among multiple threads in Java

我们可以在读取和写入它的多个线程之间共享同一个日志文件吗?

首先在 Deque 中转储消息,例如并发收集,然后定期将数据从 deque 转储到日志文件,这是一个好主意吗?

请分享任何示例/指针以获得最佳性能。

假设您指的是在同一台机器上或在分布式环境中运行的应用程序/程序,而不是同一应用程序中的多个线程。

然后...

  • 如果你使用 Log4J 作为你的日志框架,你可以通过一个SocketAppender来实现你的日志(参见Log4J appenders )。 然后,您的各种应用程序可以连接到您编写的单独的“日志记录”服务,以将所有日志合并到一个文件中。

  • 另一种选择是让您的所有应用程序在特定队列(如 RabbitMQ)上注册为生产者,其中日志行作为消息发布。 然后你可以再次拥有一个单独的消费者,它消费消息并将它们写入你的日志。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM