gpt4 book ai didi

java - 明确设置 apache HttpClient 日志级别

转载 作者:搜寻专家 更新时间:2023-11-01 03:21:34 27 4
gpt4 key购买 nike

我正在开发一个 Web 应用程序,其中使用 apache HttpClient 来生成一些 httpRequest。
对于日志记录,我将 slf4j 与 slf4j-log4j12“插件”一起使用

我想要的是为我的应用程序设置 DEBUG 日志级别,但为 HttpClient 设置 WARN 级别。我在 log4j.properties 中看到日志记录属性。

log4j.rootLogger=DEBUG,console,file

log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n

log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=log.log
log4j.appender.file.threshold=DEBUG

初始化和记录就是这样

import org.slf4j.LoggerFactory;
private static final org.slf4j.Logger LOG = LoggerFactory.getLogger(<MY_CLASS>.class.getName());

LOG.debug("This is debug info");
LOG.warn("This is warn info");

到目前为止,我正在为使用 HttpClient 的类设置以下内容

System.setProperty("org.apache.commons.logging.Log", "org.apache.commons.logging.impl.NoOpLog");

为了“停用”日志记录,但这完全停止了日志记录并且没有按照我的意愿将级别设置为 WARN。

到目前为止,我已经尝试了针对以下 SO 问题提出的建议,但没有成功。我还看到许多其他建议几乎相同。

在执行时传递参数,例如 java -Dlog4j 对我来说不是解决方案。

作为旁注,我的项目有两个模块,

  • “父模块”定义日志记录属性并具有 slf4j (1.7.5) 和 slf4j-log4j12 依赖项
  • 子模块是我使用 HttpClient (4.3.4) 的地方,它只有
    slf4j (1.7.5) 依赖

最佳答案

尝试将这三行添加到您的 log4j.properties 文件中:

log4j.logger.org.apache.http=WARN
log4j.logger.org.apache.http.headers=WARN
log4j.logger.org.apache.http.wire=WARN

关于java - 明确设置 apache HttpClient 日志级别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29368730/

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