我有一个客户端和服务器类。在同一个 JVM 中同时运行 1 个 Client 实例和 8 个 Server 实例。
我现在希望(以编程方式或通过属性文件)设置 log4j,以便每个类实例都有一个日志文件。对于上面的示例,我想要 9 个单独的日志文件。
如果您对所有实例(vg, )使用相同的 Logger private static final Logger log = Logger.getLogger(MyClass.class)
,则所有日志都将遵循相同的过程。
您应该将记录器定义为实例属性,并在 log4j.properties, vg 中为每个属性设置不同的行为
private final Logger log;
public MyClass(String instanceID) {
this.log = Logger.getLogger(MyClass.class.toString() + "_" + instanceID);
}