1、首先在一个类A中设置了一个staic的logger,它的日志文件目的地是a(通过读取properties文件动态配置);
2、然后在某个时刻,它new了另外一个对象B objB,B这个类会有一个非static的logger,它的日志文件目的地是b(通过读取另外一个properties文件动态配置)。
问题是:
在new了另外一个对象B objB之后,A的logger为什么就把它要输出的日志内容写在了目的地b文件中呢?
我觉得这两个logger应该没有什么关系啊,它们的配置文件我也是分别写了两个的,并分别在两个类的构造器中进行动态初始化。那怎么A的logger会受到B的logger的影响呢?
急待各位解决,谢谢!!!
5 个解决方案
#1
log4j的appender输出是应该全局的,就是说你的DailyRollingFileAppender只有一个实例,B改了路径后,A也就输出到B了。
#2
1、您的意思是说,通过Logger.getLogger这个静态方法得到的logger,虽然我们在参数中指定了与某个类相关,但是仍然是只有一个实例?
2、您说的“全局”,是指在什么范围内是全局的?是一个java application吗?
3、那我想要两个实例,是要怎么弄呢?
谢谢!!!
#3
在log4j的配置文件中定义2组DailyRollingFileAppender输出试试,还没试过。。。
#4
补充问一下:您说的“全局”,是指在什么范围内是全局的?是一个java application吗?
#5
是不是logger只哟一个,但是可以有多个appender?
#1
log4j的appender输出是应该全局的,就是说你的DailyRollingFileAppender只有一个实例,B改了路径后,A也就输出到B了。
#2
1、您的意思是说,通过Logger.getLogger这个静态方法得到的logger,虽然我们在参数中指定了与某个类相关,但是仍然是只有一个实例?
2、您说的“全局”,是指在什么范围内是全局的?是一个java application吗?
3、那我想要两个实例,是要怎么弄呢?
谢谢!!!
#3
在log4j的配置文件中定义2组DailyRollingFileAppender输出试试,还没试过。。。
#4
补充问一下:您说的“全局”,是指在什么范围内是全局的?是一个java application吗?
#5
是不是logger只哟一个,但是可以有多个appender?