日志类log4j:想对DailyRollingFileAppender设置两个文件目的地,但是不起作用。谢谢!

时间:2022-11-01 17:44:17
我现在的大致情况如下:
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 楼 hucp2007 的回复:
log4j的appender输出是应该全局的,就是说你的DailyRollingFileAppender只有一个实例,B改了路径后,A也就输出到B了。

1、您的意思是说,通过Logger.getLogger这个静态方法得到的logger,虽然我们在参数中指定了与某个类相关,但是仍然是只有一个实例?
2、您说的“全局”,是指在什么范围内是全局的?是一个java application吗?
3、那我想要两个实例,是要怎么弄呢?
谢谢!!!

#3


在log4j的配置文件中定义2组DailyRollingFileAppender输出试试,还没试过。。。

#4


引用 3 楼 hucp2007 的回复:
在log4j的配置文件中定义2组DailyRollingFileAppender输出试试,还没试过。。。

补充问一下:您说的“全局”,是指在什么范围内是全局的?是一个java application吗?

#5


是不是logger只哟一个,但是可以有多个appender?

#1


log4j的appender输出是应该全局的,就是说你的DailyRollingFileAppender只有一个实例,B改了路径后,A也就输出到B了。

#2


引用 1 楼 hucp2007 的回复:
log4j的appender输出是应该全局的,就是说你的DailyRollingFileAppender只有一个实例,B改了路径后,A也就输出到B了。

1、您的意思是说,通过Logger.getLogger这个静态方法得到的logger,虽然我们在参数中指定了与某个类相关,但是仍然是只有一个实例?
2、您说的“全局”,是指在什么范围内是全局的?是一个java application吗?
3、那我想要两个实例,是要怎么弄呢?
谢谢!!!

#3


在log4j的配置文件中定义2组DailyRollingFileAppender输出试试,还没试过。。。

#4


引用 3 楼 hucp2007 的回复:
在log4j的配置文件中定义2组DailyRollingFileAppender输出试试,还没试过。。。

补充问一下:您说的“全局”,是指在什么范围内是全局的?是一个java application吗?

#5


是不是logger只哟一个,但是可以有多个appender?