gpt4 book ai didi

java - 更改 log4j2 中关键字的日志级别

转载 作者:行者123 更新时间:2023-12-01 19:31:36 24 4
gpt4 key购买 nike

我正在尝试以编程方式更改给定关键字的日志级别。例如,如果我将日志级别设置为“关闭”,但想查看包含“数据库”关键字的日志,我该怎么做?有没有办法通过java实现这一点?

最佳答案

@fatCop 的回答大部分是正确的。您可以从配置为的 log4j2.xml 开始

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="warn" name="AppName" packages="">
<RegexFilter regex="*database*" onMatch="DENY" onMismatch="DENY"/>
<Appenders>
<RollingFile name="RollingFile" fileName="logs/app.log"
filePattern="logs/app-%d{MM-dd-yyyy}.log.gz">
<PatternLayout>
<pattern>%d %p %c{1.} [%t] %m%n</pattern>
</PatternLayout>
<TimeBasedTriggeringPolicy />
</RollingFile>
</Appenders>
<Loggers>
<Root level="error">
<AppenderRef ref="RollingFile"/>
</Root>
</Loggers>
</Configuration>

因为这是使用全局过滤器,所以不会记录任何内容。当您准备好启用日志记录时,请执行

final LoggerContext loggerContext = LoggerContext.getContext(false);
final Configuration config = loggerContext.getConfiguration();
Filter filter = RegexFilter.createFilter("database", null, false, Result.ACCEPT, RESULT.DENY);
config.setFilter(filter);

如果您希望禁用它,请将过滤器替换为在匹配时设置回 DENY 的新过滤器。

请注意,根记录器上的日志记录级别无关紧要,因为过滤器仅接受或拒绝事件。

关于java - 更改 log4j2 中关键字的日志级别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59667080/

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