多次记录数据打印

Rak*_*tim 3 java log4j java-ee

我已经使用log4j为我的Web应用程序实现了一个自定义日志文件.但问题是当我在该日志文件中打印任何东西时,它会打印多次.代码中是否没有循环或任何类型的迭代.任何人都可以帮我解决这个问题.

小智 10

来自:http://www.jajakarta.org/log4j/jakarta-log4j-1.1.3/docs/TROUBLESHOOT.html

log4j输出中的重复项.

在log4j输出中观察重复项的原因是由于将相同的appender多次添加到同一类别(通常是root)或者将相同的appender添加到不同的类别,忽略了appender被累积继承的事实.

log4j不会消除appender重复.换句话说,如果将相同的appender添加到类别n次,则将调用该appender n次以附加到其目标.

稍微不同的原因是添加不同的appender,所有appender都将相同的底层输出目标共享到某个类别.在这种现象最常见的情况下,BasicConfigurator.configure()方法被多次调用.每次调用它时,此方法都会将一个带有System.out目标的appender添加到根类别.

另一个常见的错误是忘记了appender是从层次结构中累积继承的.例如,如果向根类别添加appender(例如A),则所有其他类别将继承A作为appender.因此,如果您将A添加到类别(例如C),那么类别C的启用语句将打印到A两次,一次因为A在root中而一次因为它在C中.