Java 如何仅将LoggerMarker记录到特定文件?
我正在尝试使用Java 如何仅将LoggerMarker记录到特定文件?,java,logging,configuration,log4j,log4j2,Java,Logging,Configuration,Log4j,Log4j2,我正在尝试使用log4j2实现以下目标: 将所有常规内容记录到控制台,但只将MarkerFilter.FILTERED记录到特定文件,而不记录到控制台 <Configuration> <Appenders> <Console name="CONSOLE" target="SYSTEM_OUT"> <ThresholdFilter level="INFO" onMatch="ACCEPT" onMismatc
log4j2
实现以下目标:
将所有常规内容记录到控制台,但只将MarkerFilter.FILTERED
记录到特定文件,而不记录到控制台
<Configuration>
<Appenders>
<Console name="CONSOLE" target="SYSTEM_OUT">
<ThresholdFilter level="INFO" onMatch="ACCEPT" onMismatch="DENY"/>
</Console>
<RollingFile name="FILTERED" fileName="filtered.txt" />
<MarkerFilter marker="FILTERED" onMatch="ACCEPT" onMismatch="DENY"/>
</RollingFile>
</Appenders>
<Loggers>
<Root level="all">
<AppenderRef ref="CONSOLE" />
<AppenderRef ref="FILTERED" />
</Root>
</Loggers>
</Configuration>
以下内容通常可以使用,但会将任何过滤的内容另外记录到控制台。
但是,当我删除
窗体
记录器时,文件中不再记录任何内容 如何使用控制台appender上的标记过滤器进行拒绝操作
您可以在appender ref上设置级别,因此不需要为此使用ThresholdFilter
<Configuration status="warn">
<Appenders>
<Console name="CONSOLE" target="SYSTEM_OUT">
<MarkerFilter marker="FILTERED" onMatch="DENY" onMismatch="ACCEPT"/>
</Console>
<RollingFile name="FILTERED" fileName="filtered.txt" />
<MarkerFilter marker="FILTERED" onMatch="ACCEPT" onMismatch="DENY"/>
</RollingFile>
</Appenders>
<Loggers>
<Root level="all">
<AppenderRef ref="CONSOLE" level="info" />
<AppenderRef ref="FILTERED" />
</Root>
</Loggers>
</Configuration>