English 中文(简体)
多次打印日志数据
原标题:Log data printing multiple times

我为我的网络应用程序应用了 log4j 的自定义日志文件。 但问题是当我打印日志文件中的任何内容时, 它会多次打印。 代码中是否没有循环或任何迭代 。 任何人都能帮助我解决这个问题吗 。

问题回答

发讯人:http://www.jajakarta.org/log4j/jakarta-log4j-1.1.3/docs/TROUBLSHOOT.html

log4j 输出中 < 强度 > 重复 。

在log4j 输出中观测重复内容的原因,要么是因为在同一类别(典型根)中多次添加了同一个附加器,要么是因为在不同类别中添加了同一个附加器,忽略了附加器是累积继承的这一事实。

log4j 不删除附加器复制件。 换句话说, 如果您将同一个附加器添加到 n 次的类别中, 则该附加器将被引用到它的目标中 。

稍有不同的原因是将不同的附加件添加到某类中, 所有的附加件都具有相同的基本输出目标。 在最常见的现象中, 基本 Configurator. configul () 方法被多次引用。 每次被引用时, 此方法都会在根类中添加一个附加器, 带有一个系统。 out 目标被添加到 root 类别中 。

另一个常见的错误是忘记附属组织是从等级制度累积下来的。例如,如果在根类中增加一个子公司,比如 A,其他所有类别都将继承A作为子公司。因此,如果在一个类别中增加A,比如C,那么一个C类的启用语句将两次打印到A类,一次是因为A是根类,另一次是因为C类。

我遇到同样的问题, 是因为多个 Logger 配置使用同一个附加器。 这里的例子会使 LOG4J 两次存储日志信息 :

log4j.logger.com.example = ERROR, out
log4j.logger.com.example.myapp = INFO, out

例如, com.example.myap.MyClass 中的错误信息会两次登录, 因为它们与两个日志匹配 。

为了避免此行为, 您可以禁用默认启用的 Appender addition :

log4j.additivity.com.example.myapp = false

更多信息见

在网络应用程序 java 中, 为每项请求创建 seperate 线索, 可能是函数( 在其中您放置日志) 多次调用, 所以每次生成日志 。

请检查您在 log4j 配置文件, 即 < code> log4j. xml 或 < code> log4j. propertys 中提供的附加件。 配置中可能会有多个列表, 导致日志记录器多次登录这些语句 。

如果不是,请在此粘贴您的配置细节,以便我们查看。





相关问题
Spring Properties File

Hi have this j2ee web application developed using spring framework. I have a problem with rendering mnessages in nihongo characters from the properties file. I tried converting the file to ascii using ...

Logging a global ID in multiple components

I have a system which contains multiple applications connected together using JMS and Spring Integration. Messages get sent along a chain of applications. [App A] -> [App B] -> [App C] We set a ...

Java Library Size

If I m given two Java Libraries in Jar format, 1 having no bells and whistles, and the other having lots of them that will mostly go unused.... my question is: How will the larger, mostly unused ...

How to get the Array Class for a given Class in Java?

I have a Class variable that holds a certain type and I need to get a variable that holds the corresponding array class. The best I could come up with is this: Class arrayOfFooClass = java.lang....

SQLite , Derby vs file system

I m working on a Java desktop application that reads and writes from/to different files. I think a better solution would be to replace the file system by a SQLite database. How hard is it to migrate ...

热门标签