gpt4 book ai didi

java - 如何仅将 LoggerMarker 记录到特定文件?

转载 作者:行者123 更新时间:2023-11-30 11:05:10 24 4
gpt4 key购买 nike

我正在尝试使用 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>

以下一般有效,但记录任何 FILTERED内容要另外安慰。但是当我删除 <AppenderRef ref="FILTERED" />表格 <root>记录器,文件中不再记录任何内容!

最佳答案

如何在控制台附加程序上使用带有 DENY 操作的标记过滤器?

您可以在 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>

关于java - 如何仅将 LoggerMarker 记录到特定文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29743233/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com