我想log4j
在我的应用程序中使用两个不同的记录器,并且在他们向其尊重日志中写入的内容之间没有“重叠”。
例如:
我的log4j.properties如下:
log4j.rootLogger=DEBUG, stdout
log4j.logger.org.apache=DEBUG, stdout
log4j.logger.xdasLogger=DEBUG, xdas
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%m%n
log4j.appender.xdas=org.apache.log4j.ConsoleAppender
log4j.appender.xdas.layout=org.apache.log4j.PatternLayout
log4j.appender.xdas.layout.ConversionPattern=%d %-5p %c - %m%n
我的Java代码如下:
public static void main(String[] args) {
PropertyConfigurator.configure(Client.class
.getResource("/log4j.properties"));
xdasLogger = Logger.getLogger("xdasLogger");
logger = Logger.getLogger(Client.class);
logger.info("normal");
xdasLogger.info("xdas");
}
但是我的控制台输出如下:
normal
2012-06-28 09:52:44,580 INFO xdasLogger - xdas
xdas
注意,“ xdas”由logger
和同时记录xdasLogger
,这是不希望的。
有谁知道我需要对log4j.properties进行哪些更改才能将控制台输出更改为以下内容?
normal
2012-06-28 09:52:44,580 INFO xdasLogger - xdas
解决方案(取自可接受的答案):
log4j.rootLogger=DEBUG, stdout
log4j.logger.org.apache=DEBUG, stdout
log4j.logger.xdasLogger=DEBUG, xdas
log4j.additivity.org.apache=false
log4j.additivity.xdasLogger=false
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%m%n
log4j.appender.xdas=org.apache.log4j.ConsoleAppender
log4j.appender.xdas.layout=org.apache.log4j.PatternLayout
log4j.appender.xdas.layout.ConversionPattern=%d %-5p %c - %m%n
尝试将记录器的可加性设置为false。这将避免传播到rootLogger。
log4j.additivity.org.apache=false
log4j.additivity.xdasLogger=false
问题内容: 我在一个文件中有多个html文件。 结果是我弄乱了html文件。 如何在不删除其余标签的情况下更正此错误? 我正在使用python生成html文件。 如果使用,我会得到一个漂亮的html页面。 如果我第二次使用它,则页面会变形。 我们可以使用iframe纠正此问题吗?有人可以举个例子吗? 问题答案: 一个HTML文档只能有一个标签和一个标签。如果仅将多个HTML文档放在一起,则它将是无
问题内容: 我有一个JAVA类,用于启动具有唯一ID的各种线程。每个线程应登录到一个唯一的日志文件中,该文件以ID.log命名。 因为我仅在运行时获得唯一ID,所以我必须以编程方式配置Log4J: 现在,如果我按顺序启动作业,此方法就可以正常工作- 但是,当我同时启动2个线程(同一类)时,会创建两个日志,但日志混合在一起:第二个线程同时登录第一个和第二个日志。 我如何确保每个实例都是唯一的?我已经
给定:我在Kafka中有两个主题,假设主题A和主题B。Kafka流从主题A中读取一条记录,对其进行处理,并产生与所消耗记录相对应的多条记录(假设recordA和recordB)。现在的问题是我如何使用Kafka流来实现这一点。 在这里,读取的记录是消息;处理之后,它返回一个消息列表。如何将此列表划分为两个生产者流?任何帮助都将不胜感激。
我只想记录一个包中的两个类。在标准的javadoc工具中,它应该是这样的:C: 我如何在maven javadoc插件中做到这一点?
我有一个简单的问题,但我想不出来。使用同一类型的多个附加器(RollingFile)和Log4j2属性文件格式的单个记录器的正确语法是什么? 作为背景,我使用的是Karaf4.2。7使用pax日志记录。我的日志配置文件是属性格式。 将两个追加器放在用逗号分隔的最后一行不起作用。如果我只有一个appender或另一个appender,它就会工作。我也试过了 这些都不管用。我似乎在网上找不到任何关于如