2012-07-24 97 views
0

我有一个客户端和服务器类。有一个客户端实例正在运行,并且在同一个JVM中同时运行八个服务器实例。单独的日志文件为同一类的单独实例

我现在希望(以编程方式或通过属性文件)设置log4j,以便我有每个类实例一个日志文件。对于上面的例子,我想有9个独立的日志文件。

+0

你为什么在同一个虚拟机上运行呢? – 2012-07-24 08:33:00

+0

你可能不会喜欢这一点,但似乎你正在使用日志进行调试,这是一个反模式,更好的编写自动化测试 – 2012-07-24 08:41:45

+0

我正在尝试查明问题的位置oc诅咒,在我真正去调试之前。有趣的是,我实际上正在调试单元测试... @ChristianSchlichtherle我在做什么感觉不对。你能否指点我对这个反模式的一些资源? – Howie 2012-07-24 09:44:52

回答

1

如果您使用的是相同的记录仪的所有实例(VG,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); 
}