Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/opengl/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Log4j:条件可加性(或根据条件将事件传播到根记录器?)_Java_Logging_Log4j_Log4j2 - Fatal编程技术网

Java Log4j:条件可加性(或根据条件将事件传播到根记录器?)

Java Log4j:条件可加性(或根据条件将事件传播到根记录器?),java,logging,log4j,log4j2,Java,Logging,Log4j,Log4j2,我有一个非常简单的任务:将所有事件(警告及以上)写入主日志,对于某些记录器,只将调试消息写入第二个日志文件(警告及以上必须记录到主日志)。有时我也希望在主日志中看到调试消息(例如log4j.logger.com.test=debug) 此外,我必须使用log4j属性文件语法。我不明白在这种情况下,可加性(见我的最后一行)是有条件的,还是应该对任务使用完全不同的方法(哪一种?) 我现在所拥有的: log4j.appender.stdout=org.apache.log4j.ConsoleAppen

我有一个非常简单的任务:将所有事件(警告及以上)写入主日志,对于某些记录器,只将调试消息写入第二个日志文件(警告及以上必须记录到主日志)。有时我也希望在主日志中看到调试消息(例如log4j.logger.com.test=debug)

此外,我必须使用log4j属性文件语法。我不明白在这种情况下,可加性(见我的最后一行)是有条件的,还是应该对任务使用完全不同的方法(哪一种?)

我现在所拥有的:

log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.EnhancedPatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d %-5p [%t] %c:%L - %m%n

log4j.rootLogger=warn, stdout

log4j.appender.file2=org.apache.log4j.RollingFileAppender
log4j.appender.file2.maxFileSize=10240KB
log4j.appender.file2.maxBackupIndex=30
log4j.appender.file2.File=${catalina.home}/logs/test.log
log4j.appender.file2.encoding=UTF-8
log4j.appender.file2.layout=org.apache.log4j.PatternLayout
log4j.appender.file2.layout.ConversionPattern=%d %-5p [%t] %c:%L - %m%n
log4j.logger.org.hibernate = debug, file2
log4j.additivity.org.hibernate = false

log4j.logger.com.test=debug

我建议您查看Log4J2,因为log4j1.x不再是主动维护的(并且Log4J2还有其他一些优点,比如性能改进)

一个常见的用例是为开发人员将debug和更高版本(info、warn、error、fatal)写入一个文件,并将warn和更高版本(warn、error、fatal)写入另一个文件,例如用于支持

从您的描述来看,您似乎希望将输出限制为仅调试级别,并排除信息、警告、错误和致命级别的消息。这是可能的,但不像上面的用例那样直接。 您可能需要使用过滤器:
看看过滤器文档,我会看看是否能找到一个例子

您已经标记了log4j2,但是log4j2甚至不支持log4j.properties,所以我不明白您希望如何在上面使用log4j.properties。log4j2仅支持json和xml配置文件。log4j2仍处于测试阶段。期待生产准备阶段(至少RC)。下一版本将是2.0 GA或RC1。