我们正在使用log4j进行日志记录功能。应用程序在群集环境中运行。如何配置log4j属性,以便所有实例都记录到同一个日志文件?
答案 0 :(得分:0)
一种解决方案是拥有一个专门用于记录的目录。该目录可以位于安装到两个进程相同位置的网络共享(NFS等)上。这可以像安装到文件结构中的相同位置一样简单,也可以使用环境变量($ LOGDIR)完成,这样每个主机都可以指向其本地文件结构中的不同位置。
重要的是共享文件夹,以便多个进程写入同一文件。但是,正常的共享资源限制适用;确保文件未被一个主机锁定,同时阻止另一个主机写入等。另外,使用包含主机名/进程名称/线程ID的输出模式。
我使用的另一种方法是写入日志表的数据库追加器。不需要共享,但考虑到多进程日志记录的问题,您仍需要设计表。