0
我有一个客户端和服务器类。有一个客户端实例正在运行,并且在同一个JVM中同时运行八个服务器实例。单独的日志文件为同一类的单独实例
我现在希望(以编程方式或通过属性文件)设置log4j,以便我有每个类实例一个日志文件。对于上面的例子,我想有9个独立的日志文件。
我有一个客户端和服务器类。有一个客户端实例正在运行,并且在同一个JVM中同时运行八个服务器实例。单独的日志文件为同一类的单独实例
我现在希望(以编程方式或通过属性文件)设置log4j,以便我有每个类实例一个日志文件。对于上面的例子,我想有9个独立的日志文件。
如果您使用的是相同的记录仪的所有实例(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);
}
你为什么在同一个虚拟机上运行呢? – 2012-07-24 08:33:00
你可能不会喜欢这一点,但似乎你正在使用日志进行调试,这是一个反模式,更好的编写自动化测试 – 2012-07-24 08:41:45
我正在尝试查明问题的位置oc诅咒,在我真正去调试之前。有趣的是,我实际上正在调试单元测试... @ChristianSchlichtherle我在做什么感觉不对。你能否指点我对这个反模式的一些资源? – Howie 2012-07-24 09:44:52