Configuration 在集群环境中配置log4j

Configuration 在集群环境中配置log4j,configuration,log4j,cluster-computing,Configuration,Log4j,Cluster Computing,我们使用log4j实现日志功能。应用程序正在群集环境中运行。如何配置log4j属性,使所有实例都记录到同一个日志文件中?一个解决方案是有一个专用于日志记录的目录。该目录可以位于网络共享(NFS等)上,该网络共享装载到两个进程相同的位置。这可以简单地装载到文件结构中的相同位置,也可以使用环境变量($LOGDIR)完成,这样每个主机都可以指向其本地文件结构中的不同位置 重要的是要共享文件夹,以便多个进程写入同一个文件。但是,正常的共享资源限制适用;确保文件未被一台主机锁定,同时防止另一台主机写入等。

我们使用log4j实现日志功能。应用程序正在群集环境中运行。如何配置log4j属性,使所有实例都记录到同一个日志文件中?

一个解决方案是有一个专用于日志记录的目录。该目录可以位于网络共享(NFS等)上,该网络共享装载到两个进程相同的位置。这可以简单地装载到文件结构中的相同位置,也可以使用环境变量($LOGDIR)完成,这样每个主机都可以指向其本地文件结构中的不同位置

重要的是要共享文件夹,以便多个进程写入同一个文件。但是,正常的共享资源限制适用;确保文件未被一台主机锁定,同时防止另一台主机写入等。此外,请使用包含主机名/进程名/线程id的输出模式


我使用的另一种方法是数据库追加器,它写入日志表。不需要共享,但是您仍然需要考虑多进程日志记录的问题来设计表

信息远远不够。“集群环境”是什么意思?集群是将服务器的工作负载分布在多台机器上的概念。这些都是同一应用程序在不同机器上运行的实例,或者换句话说,是不同的JDK。我想为集群中的所有实例创建一个集中的日志文件。是的,我们知道集群的含义。我们需要知道什么样的集群,它可能意味着一打不同的东西。集群是一种复杂的情况,你不可能用三句话问一个有意义的问题。我所说的集群是指,我们有两个unix机器,应用程序实例在这些unix机器上运行。我需要两个实例的通用日志文件。我希望事情是清楚的。