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