同一类的单独实例的单独日志文件



我有一个客户端和服务器类。在同一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);
}

最新更新