gpt4 book ai didi

logging - 更改每个请求的 log4j 中的优先级

转载 作者:行者123 更新时间:2023-12-02 06:46:46 25 4
gpt4 key购买 nike

我是 Logging 和 Log4j 的新手。我想要做的是更改每个请求的记录器级别。这意味着:

通常,优先级设置为 ERROR,但用户可以使用特殊参数调用服务器来将优先级日志级别设置为 DEBUG,但仅限于该用户/请求。

这意味着如果用户A发送请求http://myServer.com/test它只记录那些优先级为 ERROR 的消息。

但是如果用户A发送请求http://myServer.com/test?debug=true ,记录器会记录所有消息,但是如果用户 B 同时发送请求 http://myServer.com/test仅记录错误消息。

如果这些日志可以保存在新的附加程序中,那就太好了。

最佳答案

我认为你应该使用Log4j Filters .

将其添加到您的 log4j2.xml 配置中:

<DynamicThresholdFilter key="X-Log-Level" onMatch="ACCEPT" onMismatch="NEUTRAL" defaultThreshold="ERROR">
<KeyValuePair key="TRACE" value="TRACE"/>
<KeyValuePair key="DEBUG" value="DEBUG"/>
</DynamicThresholdFilter>

(...) 并在您的请求中设置一个过滤器,将“X-Log-Level”分配给 Thread Context例如,通过 MDC .

// Replace the hardcoded logLevel value with something dynamic,
// ideally from the http request header.
String logLevel = "DEBUG";
MDC.put("X-Log-Level", logLevel);

关于logging - 更改每个请求的 log4j 中的优先级,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24158273/

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