sysout重定向到swing控制台,log4j内容不会

时间:2017-11-16 16:43:34

标签: java log4j

我将控制台输出重定向到摇摆控制台。当我向代码添加一个sysout时,文本出现在swing组件中。 现在我认为log4j的控制台输出也会出现在这个swing组件中。但是任何log.info()消息仍然出现在eclipse控制台中。 当我调试将消息重定向到swing组件的Handeler时,我可以看到记录器的消息没有通过那里。但是,Sysout消息可以。

任何人都可以给我一个暗示这里可能出错的地方吗?我可以同时拥有两个游戏机吗?

这是我对log4j的配置:

log4j.rootLogger=INFO, stdout, file
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %C{1} - %m%n
log4j.appender.stdout.filter.filtro=org.apache.log4j.varia.LevelRangeFilter
log4j.appender.stdout.filter.filtro.levelMin=ALL
log4j.appender.stdout.filter.filtro.levelMax=FATAL

1 个答案:

答案 0 :(得分:0)

解决方案非常简单但难以跟踪。我在GUI类中使用了Logger,其中我有控制台组件。所以我猜想在将代码重定向到swing控制台的代码执行之前,Logger已初始化。当执行此代码时,由于已经设置了Logger,它保持原样。

当我从GUI类中删除记录器时,一切正常。