为同一个类的单独实例分隔日志文件

时间:2012-07-24 08:28:24

标签: java log4j

我有一个Client和Server类。在同一个JVM中,有一个Client实例正在运行,8个Server实例同时运行。

我现在希望(以编程方式或通过属性文件)安装log4j,以便每个类实例都有一个日志文件。对于上面的示例,我希望有9个单独的日志文件。

1 个答案:

答案 0 :(得分:1)

如果您对所有实例使用相同的Logger(v.g.,private static final Logger log = Logger.getLogger(MyClass.class),则所有日志都将遵循相同的过程。

您应该将记录器定义为实例属性,并为log4j.properties中的每个属性设置不同的行为,例如。

private final Logger log;

public MyClass(String instanceID) {
  this.log = Logger.getLogger(MyClass.class.toString() + "_" + instanceID);
}