我有2个web应用程序,想要将这两个Web应用程序的日志消息记录到一个日志文件中。我尝试了这个场景,面对的问题是“如果一个Web应用程序将消息记录到日志中,则第二个Web应用程序无法将消息记录到日志文件中”。如果我停止服务器,第二个应用程序能够登录。任何帮助?
答案 0 :(得分:1)
从多个独立进程写入同一文件是一个坏主意 - 只有其中一个可以获得文件锁定,这从您的问题中可以看出。
您需要的是集中式日志记录服务器,并让您的所有应用程序通过网络登录到该服务器。见this question
答案 1 :(得分:1)
您可以使用Log4J的SocketAppender
,这样更清晰 - 本文中可以找到一个示例:log4j: How to use SocketAppender。
说实话,与为您的进程提供两个独立日志文件相比,这有点过分。
顺便说一下。您的方法可能在分布式文件系统上存在问题(例如NFS) - 不要混合使用日志文件。
希望有所帮助。 *乔斯特
答案 2 :(得分:0)
将两个不同应用程序的日志记录放到公共日志中并不是一个好主意。记录模块锁定日志文件以进行写入。如果其他应用程序试图访问相同的日志,它将无法获得锁定。 我会避免这样的事情。