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
Java Log4j:从控制台中排除日志,但为这些日志创建新的日志文件_Java_Logging_Log4j - Fatal编程技术网

Java Log4j:从控制台中排除日志,但为这些日志创建新的日志文件

Java Log4j:从控制台中排除日志,但为这些日志创建新的日志文件,java,logging,log4j,Java,Logging,Log4j,我的Java项目包含以下包- com.main.log4j.main,com.main.log4j.other 我希望从控制台日志中删除包“com.main.log4j.other”的日志行,而不是为同一个包维护不同的日志文件。我使用的是Log4j版本1.2.16,带有以下Log4j.xml配置 <appender name="CONSOLE-LOG" class="org.apache.log4j.ConsoleAppender"> <param name="Targ

我的Java项目包含以下包- com.main.log4j.main,com.main.log4j.other

我希望从控制台日志中删除包“com.main.log4j.other”的日志行,而不是为同一个包维护不同的日志文件。我使用的是Log4j版本1.2.16,带有以下Log4j.xml配置

<appender name="CONSOLE-LOG" class="org.apache.log4j.ConsoleAppender">
    <param name="Target" value="System.out" />
    <layout class="org.apache.log4j.PatternLayout">
        <param name="ConversionPattern" value="..." />
    </layout>
</appender>

<appender name="OTHER-LOG" class="org.apache.log4j.FileAppender">
    <param name="File" value="logs/Others.log" />
    <param name="Threshold" value="DEBUG" />
    <layout class="org.apache.log4j.PatternLayout">
        <param name="ConversionPattern" value="..." />
    </layout>
</appender>

<category name="com.main.log4j.other">
    <appender-ref ref="OTHER-LOG" />
</category>
<root>
    <level value="debug" />
    <appender-ref ref="CONSOLE-LOG" />
</root>

使用此配置,将使用日志行创建一个单独的日志文件Others.log,但这些日志行仍存在于控制台日志中。 我想把他们排除在外。
请建议我如何配置log4j.xml?

在“com.main.log4j.other”类别中将
可加性设置为false:

<category name="com.main.log4j.other" additivity="false">


这将防止这些日志也被记录在根日志记录器中。

在“com.main.log4j.other”类别中将
可加性设置为false:

<category name="com.main.log4j.other" additivity="false">


这将阻止这些日志也被记录到根日志记录器中。

可能重复@RaghavaDhanya感谢您的回复,但我的问题不同。@RaghavaDhanya可能重复感谢您的回复,但我的问题不同。发布了新的问题声明-如何解决警告:无法识别的元素-rollingPolicy,触发政策?我们能否做到以下几点?1.我希望包“com.main.log4j.other”的致命级别日志仍然是控制台日志的一部分。2.只有包“com.main.log4j.other”的调试和信息级别日志行将是“Others.Log”的一部分。这两种方法都可以吗?注意:第2部分-可以通过使用LevelMatchFilter和DenyAllFilter来实现。发布了一个新的问题声明-如何解决警告:无法识别的元素-rollingPolicy,triggeringPolicy?我们能否做到以下几点?1.我希望包“com.main.log4j.other”的致命级别日志仍然是控制台日志的一部分。2.只有包“com.main.log4j.other”的调试和信息级别日志行将是“Others.Log”的一部分。这两种方法都可以吗?注:第2部分-可通过使用LevelMatchFilter和DenyAllFilter实现。