Log4j常用日志文件适用于多个Web应用程序?

时间:2013-08-27 07:13:56

标签: java log4j

我有2个web应用程序,想要将这两个Web应用程序的日志消息记录到一个日志文件中。我尝试了这个场景,面对的问题是“如果一个Web应用程序将消息记录到日志中,则第二个Web应用程序无法将消息记录到日志文件中”。如果我停止服务器,第二个应用程序能够登录。任何帮助?

3 个答案:

答案 0 :(得分:1)

从多个独立进程写入同一文件是一个坏主意 - 只有其中一个可以获得文件锁定,这从您的问题中可以看出。

您需要的是集中式日志记录服务器,并让您的所有应用程序通过网络登录到该服务器。见this question

答案 1 :(得分:1)

您可以使用Log4J的SocketAppender,这样更清晰 - 本文中可以找到一个示例:log4j: How to use SocketAppender

说实话,与为您的进程提供两个独立日志文件相比,这有点过分。

顺便说一下。您的方法可能在分布式文件系统上存在问题(例如NFS) - 不要混合使用日志文件。

希望有所帮助。 *乔斯特

答案 2 :(得分:0)

将两个不同应用程序的日志记录放到公共日志中并不是一个好主意。记录模块锁定日志文件以进行写入。如果其他应用程序试图访问相同的日志,它将无法获得锁定。 我会避免这样的事情。