programing

HttpClient 로깅 사용 안 함

copysource 2022. 8. 27. 23:29
반응형

HttpClient 로깅 사용 안 함

사용하고 있습니다.commons-httpclient1 in suet.3.1 3 3 3 。 ' 'HttpClient너무 시끄러워서 끌 수가 없어요.여기 지시사항을 따르려고 노력했지만 아무 차이가 없어요.

org.mig.wire logger org.mig.wire logger 。는 어떤 의 로거를 사용하는지이다.HttpClient사용하려고 합니다.저는 이 도서관을 사용해 본 적이 없어요.log4j.properties 파일을 생성하여 테스트/리소스 폴더에 드롭하고, jre/lib의 master logging.properties 파일을 수정하여 로깅 페이지에 지정된 대로 Maven에 다양한 로깅 옵션을 전송해 봤지만 아무런 차이가 없습니다.

UPDATE: 수정: 문제의 출력이 실제로 jwebunit의 사용을 통해 생성된 것으로 보입니다.HttpClient아아아아아아아아아아아아아아아아아아아아.어느 쪽이든 바람직하지 않다.

업데이트: 지금까지 시도해 주셔서 감사합니다.아래에 제시된 모든 것을 시도해 봤지만 아직 성공하지 못했습니다.내 src/test/resources 폴더에 commons-logging.properties 파일이 있으며 다음 내용이 있습니다.

org.apache.commons.logging.LogFactory=org.apache.commons.logging.impl.Log4jFactory
log4j.configuration=log4j.properties

및 파일 log4j.properties는 다음 내용을 포함하는 동일한 폴더에 있습니다.

log4j.rootLogger=ERROR, stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p [%c] %m%n

#This is the line that should make httpclient shut up
log4j.logger.org.apache.http=ERROR

그러나 테스트를 실행하면 다음과 같은 출력이 표시됩니다.

21:57:41.413 [main] DEBUG org.apache.http.wire - << "                                   [\r][\n]"
21:57:41.413 [main] DEBUG org.apache.http.wire - << "[\r][\n]"
21:57:41.413 [main] DEBUG org.apache.http.wire - << "                                   [\r][\n]"
21:57:41.413 [main] DEBUG org.apache.http.wire - << "                               </ul>[\n]"
21:57:41.413 [main] DEBUG org.apache.http.wire - << "    [\n]"
21:57:41.424 [main] DEBUG org.apache.http.wire - << "[\n]"
21:57:41.425 [main] DEBUG org.apache.http.wire - << "[\r][\n]"
21:57:41.425 [main] DEBUG org.apache.http.wire - << "[\r][\n]"
21:57:41.425 [main] DEBUG org.apache.http.wire - << "                   </div>[\r][\n]"
21:57:41.425 [main] DEBUG org.apache.http.wire - << "                </li>[\r][\n]"
21:57:41.425 [main] DEBUG org.apache.http.wire - << "            [\r][\n]"
21:57:41.425 [main] DEBUG org.apache.http.wire - << "            [\r][\n]"
21:57:41.433 [main] DEBUG org.apache.http.wire - << "        </ul>[\n]"
21:57:41.433 [main] DEBUG org.apache.http.wire - << "</div>[\n]"
21:57:41.433 [main] DEBUG org.apache.http.wire - << "[\n]"
21:57:41.433 [main] DEBUG org.apache.http.wire - << "</div>[\n]"
21:57:41.433 [main] DEBUG org.apache.http.wire - << "[\n]"
21:57:41.433 [main] DEBUG org.apache.http.wire - << "[\n]"
21:57:41.433 [main] DEBUG org.apache.http.wire - << "[\n]"
21:57:41.433 [main] DEBUG org.apache.http.wire - << "[\n]"
21:57:41.433 [main] DEBUG org.apache.http.wire - << "<div class="details">[\n]"
21:57:41.442 [main] DEBUG org.apache.http.wire - << "[\n]"
21:57:41.443 [main] DEBUG org.apache.http.wire - << "[\n]"
21:57:41.443 [main] DEBUG org.apache.http.wire - << "<div class="details-body details-precis  ">[\n]
"
21:57:41.443 [main] DEBUG org.apache.http.wire - << "<div class="details-state">[\n]"
21:57:41.443 [main] DEBUG org.apache.http.wire - << "[\n]"
21:57:41.443 [main] DEBUG org.apache.http.wire - << "</div>[\n]"
21:57:41.443 [main] DEBUG org.apache.http.wire - << "</div>[\n]"
21:57:41.443 [main] DEBUG org.apache.http.wire - << "[\n]"
21:57:41.455 [main] DEBUG org.apache.http.wire - << "[\n]"
21:57:41.455 [main] DEBUG org.apache.http.wire - << "</div>[\n]"
21:57:41.455 [main] DEBUG org.apache.http.wire - << "[\n]"
21:57:41.455 [main] DEBUG org.apache.http.wire - << "</div>[\n]"
21:57:41.455 [main] DEBUG org.apache.http.wire - << "</div>[\n]"
21:57:41.455 [main] DEBUG org.apache.http.wire - << "[\n]"
21:57:41.455 [main] DEBUG org.apache.http.wire - << "[\n]"
21:57:41.455 [main] DEBUG org.apache.http.wire - << "[\n]"
21:57:41.455 [main] DEBUG org.apache.http.wire - << "[\r][\n]"
Destroying 1 processes21:57:41.465 [main] DEBUG org.apache.http.wire - << "[\r][\n]"

무선으로 전송되는 모든 것에 대한 이 출력으로 인해 이 라이브러리는 사용할 수 없게 되었습니다.어떻게 끄는지 알아낼 때까지요이 로그 설정을 읽으려면 특별히 해야 할 일이 있습니까?

log4j.properties★★★★

log4j.logger.httpclient.wire.header=WARN
log4j.logger.httpclient.wire.content=WARN

Log4j는 HttpClient(JWebUnit)를 사용합니다., 「 」를 작성 또는 합니다.logback.xml★★★★

<configuration>
    <logger name="org.apache" level="WARN" />
    <logger name="httpclient" level="WARN" /> 
</configuration>

을 「」로 설정합니다.WARN 시 Log4j 사용org.apache.commons.httpclientlog4j.properties 정상적으로 동작하지 않습니다.

log4j.logger.org.apache.commons.httpclient=WARN

이것은, HttpClient(v3.1)의 송신원에서는 다음의 로그명이 사용되고 있기 때문입니다.

public static Wire HEADER_WIRE = new Wire(LogFactory.getLog("httpclient.wire.header"));
public static Wire CONTENT_WIRE = new Wire(LogFactory.getLog("httpclient.wire.content"));

주의: 이 답변 중 일부는 이미 알고 있는 것(또는 알고 있다고 생각되는 것)을 반복할 수 있지만, 이 질문에는 잘못된 정보가 떠돌고 있기 때문에 처음부터 다시 한 번 자세히 설명하겠습니다.

  • Commons HttpClient는 모든 로깅 요구에 Commons-Logging을 사용합니다.
  • Commons-Logging은 완전한 로깅 프레임워크가 아니라 여러 기존 로깅 프레임워크의 래퍼입니다.
  • 즉, 로그 출력을 제어하려면 (대부분) Commons-Logging 이외의 라이브러리가 설정되지만 Commons-Logging은 다른 여러 라이브러리를 포괄하기 때문에 어떤 라이브러리를 설정해야 하는지 정확하게 알지 못하고는 추측하기 어렵습니다.
  • 할 수 Commons-Logging" log4j"에 .java.util.logging1.4 JDK 1.4 로깅)
  • Commons-Logging은 스마트하고 이미 사용하고 있는 로깅 프레임워크를 추측하여 로그를 전송합니다.
  • 프레임워크가 아직 1.4되어야 함에서 실행 .4' JRE(')')에됩니다.java.util.logging)
  • Commons-Logging(공통 로그) 말하면, simply만면하하 simply simply simply simply simply simply simply 。log4j.jar이은 아마 메커니즘이 수 있습니다.
  • Commons-Logging에 사용할 로깅 라이브러리를 명시적으로 지시하는 것이 좋습니다.
  • 조작은, 「」를 작성해 주세요.commons-logging.properties 설명에 따라 파일을 작성하다
  • 커먼즈
    1. 사용할 기본 로깅 프레임워크를 결정합니다.선택지가 '아마도'일 거예요.log4j ★★★★★★★★★★★★★★★★★」java.util.logging최적의 옵션입니다.
    2. Commons-Logging을 Commons-Logging 합니다.Log log4j를과 같이 합니다.org.apache.commons.logging.Log=org.apache.commons.logging.impl.Log4JLogger하려면 , 「JDK」를 사용합니다org.apache.commons.logging.Log=org.apache.commons.logging.impl.Jdk14Logger 시스템 속성 사용).-D★★★★★★★★★★★★★★★★★★★★★」
    3. 원하지 않는 메시지를 무시하고 원하는 메시지를 출력하도록 기본 로깅 구현(log4j 등)을 구성합니다.

은은단 、 ,,,렇해해 。Apache-commons의 개발자들은 로그 프레임워크가 이미 구성되어 있다고 가정하고 자동 검출을 통해 어떤 프레임워크인지 알아낼 수 있습니다.
그렇지 않다면 일을 진행시키는 것이 좀 더 힘든 경향이 있습니다.

log4j에 다음 합니다.log4j.properties에서)source★★★★★★★★★★★★★★★★★★:

log4j.logger.org.apache=WARN
log4j.logger.httpclient=WARN

경우 입니다.logback.xml노이즈를 제거합니다.

<configuration>
    <logger name="org.apache" level="WARN" />
    <logger name="httpclient" level="WARN" /> 
</configuration>

이것을 log4j config 파일에 저장했습니다.

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

그러면 출력이 경고 수준 이상으로 제한됩니다.

이게 내 테스트에 효과가 있었어.

java.util.logging.Logger.getLogger("org.apache.http.wire").setLevel(java.util.logging.Level.FINEST);
java.util.logging.Logger.getLogger("org.apache.http.headers").setLevel(java.util.logging.Level.FINEST);
System.setProperty("org.apache.commons.logging.Log", "org.apache.commons.logging.impl.SimpleLog");
System.setProperty("org.apache.commons.logging.simplelog.showdatetime", "true");
System.setProperty("org.apache.commons.logging.simplelog.log.httpclient.wire", "ERROR");
System.setProperty("org.apache.commons.logging.simplelog.log.org.apache.http", "ERROR");
System.setProperty("org.apache.commons.logging.simplelog.log.org.apache.http.headers", "ERROR");

JUnit에서 Rest Assured를 사용할 때 이 문제가 발생했습니다.이 프로그램적 접근법은 나에게 효과가 있었다.

@BeforeClass
public static void setUpClass() {
    ch.qos.logback.classic.Logger root = (ch.qos.logback.classic.Logger) org.slf4j.LoggerFactory.getLogger("org.apache.http");
    root.setLevel(ch.qos.logback.classic.Level.INFO);

    //...
}

이를 확인하는 데 시간이 너무 오래 걸렸지만 JWebUnit은 Logback Logging 컴포넌트와 함께 제공되므로 사용하지도 않습니다.log4j.properties ★★★★★★★★★★★★★★★★★」commons-logging.properties.

'보다 낫다'라는 .logback.xml폴더에 내 경우는, 「소스코드 폴더입니다).src

<configuration debug="false">
  <!-- definition of appender STDOUT -->
  <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
    <encoder>
      <pattern>%-4relative [%thread] %-5level %logger{35} - %msg %n</pattern>
    </encoder>
  </appender>

  <root level="ERROR">
    <!-- appender referenced after it is defined -->
    <appender-ref ref="STDOUT"/>
  </root> 
</configuration>

Logback은 아직 개발 중이며 API는 아직 변경 중인 것 같기 때문에 이 코드샘플은 장차 실패할 수 있습니다.이 StackOverflow 질문도 참조해 주세요.

로그 출력을 설정하려면 속성 파일이 아닌 XML을 사용합니다.다음 코드는 이 채팅을 잠재우는 데 도움이 되었습니다.

<logger name="org.apache.commons.httpclient">
    <level value="fatal"/>
</logger>

<logger name="httpclient.wire.header">
    <level value="fatal"/>
</logger>

<logger name="httpclient.wire.content">
    <level value="fatal"/>
</logger>

Log4j 및 HttpCLient의 간단한 방법(이 경우 v3.1은 더 높은 수준으로 작동해야 하며 사소한 변경이 필요할 수 있음)

모든 의존관계가 올바른지 확인하고 MD5를 다운로드하세요!!!!

import org.apache.commons.httpclient.HttpClient;  
import org.apache.log4j.Level;  
import org.apache.log4j.Logger;  

---

Logger.getLogger("org.apache.commons.httpclient").setLevel(Level.WARN);
Logger.getLogger("httpclient.wire.header").setLevel(Level.WARN);
Logger.getLogger("httpclient.wire.content").setLevel(Level.WARN);

HttpClient client = new HttpClient();

저는 오랫동안 같은 문제로 고민해 왔고, 결국 이것을 알아보기로 했습니다.이 문제는 제 프로젝트가 log4j.xml 파일을 번들한http-builder-0.5.2.jar에 의존한다는 것입니다.org.apache.http.wire의 로그레벨은 DEBUG로 되어 있습니다.내가 찾은 방법은 내 의존관계에 있는 모든 jar 파일들을 뒤지고 "jar tvf"와 log4j에 대한 greping을 하는 것이었습니다.

이 발견으로 http-builder 의존관계를 0.6으로 끌어올리는 최종적인 해결책이 되었지만, log4j.xml 파일을 jar 파일로 번들할 때 개발자가 어떤 생각을 했는지 아직도 모르겠다.어쨌든, 그건 아마 지금 이 스레드와는 관련이 없을 것입니다.하지만 이전에 솔루션을 찾을 때 내 솔루션이 나오지 않았기 때문에 이 솔루션을 언급하는 것이 유용하다고 생각했습니다.누군가 이것을 유용하게 여겨주길 바란다.

- 이, 다른 log4.properties - 는 .org.apache.http거가 파파 ?정 정? ???

-org.apache.commons.logging.simplelog.log.org.apache.http=ERROR

, 「」의 있지 .org.apache.http에서는 "log4j" "Log4j" "" "Log4j" "Log4j" "Log4j" "Log4j" "Log4j" "Log4j" "Log4j" 가 상속됩니다.log4j.rootLogger이라고 하면 . 그래서 만약에log4j.rootLogger, 「ERROR」라고 설정을 합니다.org.apache.http만 log4j.properties로 .ERROR상속만으로 메시지를 표시합니다.

갱신:

작성하다commons-logging.properties파일에 다음 행을 추가합니다.CLASSPATH 입니다.

org.disc.disc.disc.glLogFactory=syslog.apache.commons.logging.impl.Log4jFactory

완성된 log4j 파일과 OP를 호출하기 위한 코드를 추가했습니다.이 log4j.properties는 CLASSPATH에 있어야 합니다.현재로서는 stdout이라고 생각합니다.

log4j.configuration=log4j.properties 
log4j.rootLogger=ERROR, stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p [%c] %m%n

log4j.logger.org.apache.http=ERROR

다음은 로거를 호출하기 위해 클래스에 추가해야 하는 코드입니다.

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory; 

public class MyClazz
{
    private Log log = LogFactory.getLog(MyClazz.class);
    //your code for the class
}

다음 두 줄로 문제를 완전히 해결했습니다.

Logger.getLogger("org.apache.commons.httpclient").setLevel(Level.ERROR);
Logger.getLogger("httpclient").setLevel(Level.ERROR);

★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★가 솔음음음음음음음음음음 the 로 가득 찼다.[main] DEBUG org.apache.http.wire테스트 실행 중.

이 솔루션은 https://github.com/bonigarcia/webdrivermanager-examples/blob/master/src/test/resources/logback-test.xml과 같이 logback-test.xml src/test/logback-test.xml을 생성하는 것입니다(참조 - https://github.com/bonigarcia/webdrivermanager/issues/203)).

로그 정보를 표시하기 위해 logger name="io.github.bonigarcia"를 패키지 이름으로 대체했습니다.

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n</pattern>
        </encoder>
    </appender>

    <logger name="com.mypackage" level="DEBUG" />
    <logger name="org" level="INFO" />
    <logger name="com" level="INFO" />

    <root level="INFO">
        <appender-ref ref="STDOUT" />
    </root>

</configuration>

클래스 루트 경로 및 아래 설정에 "logback.xml"을 추가하는 것이 좋습니다.

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <logger name="org.apache" level="WARN"/>
    <logger name="httpclient" level="WARN"/>
</configuration>

JWeb 유닛에서도 같은 문제가 있었습니다.이진 분포를 사용하는 경우 Logback이 기본 로거입니다.JWebUnit에서 log4j를 사용하려면 다음 단계를 수행합니다.

  • 로그백 jar 제거
  • sfl4j - slf4j-log4j12-1.6.4.jar용 lod4j 브리지 라이브러리 추가
  • log4j.properties 추가

Logback jars를 삭제할 필요는 없지만 slf4j에서 log4j를 강제로 사용하려면 몇 가지 추가 단계가 필요합니다.

log4j 속성 파일에 다음 행을 추가하면 http logs :- log4j.logger.org.http 로그가 닫힙니다.http=오프

아래 은 '''의 '''입니다'''에 입니다.log4j.properties「HttpClient」는, 「HttpClient」의 「HttpClient」의 「HttpClient」의 「HttpClient」의 「HttpClient」를 참조해 주세요. :)

log4j.logger.org.apache.http.headers=ERROR
log4j.logger.org.apache.http.wire=ERROR
log4j.logger.org.apache.http.impl.conn.PoolingHttpClientConnectionManager=ERROR
log4j.logger.org.apache.http.impl.conn.DefaultManagedHttpClientConnection=ERROR
log4j.logger.org.apache.http.conn.ssl.SSLConnectionSocketFactory=ERROR
log4j.logger.org.springframework.web.client.RestTemplate=ERROR
log4j.logger.org.apache.http.client.protocol.RequestAddCookies=ERROR
log4j.logger.org.apache.http.client.protocol.RequestAuthCache=ERROR
log4j.logger.org.apache.http.impl.execchain.MainClientExec=ERROR
log4j.logger.org.apache.http.impl.conn.DefaultHttpClientConnectionOperator=ERROR

비슷한 문제에 대한 해결책을 찾다가 이 게시물로 안내되었습니다.팀의 대답은 매우 도움이 되었다.Matt Baker와 마찬가지로 너무 많은 설정을 하지 않고httpClient 로그를 셧다운하고 싶습니다.common-logging 아래에 어떤 로깅 구현이 사용되는지 알 수 없었기 때문에, 나의 솔루션은 log4j jar 파일을 클래스 경로에 던져 log4j를 사용하여 강제로 실행하는 것이었습니다. log4j 설정의 디폴트 설정은 common-httpclient 디버깅 출력을 차단합니다.물론 보다 견고하게 하기 위해 common-logging.properties 및 log4j.properties 파일을 생성하여 로깅 설정을 더욱 정의할 수도 있습니다.

트라이 퍼트

org.apache.commons.logging.Log=org.apache.commons.logging.impl.NoOpLog

commons-commons.properties에서

apache 4.5.3의 경우 모든 apache http 클라이언트 로깅 수준을 경고로 이동하려면 다음을 사용합니다.

log4j.logger.org.apache=WARN

jwebunit 연동 테스트를 실행할 때도 같은 문제가 있었습니다.다음과 같이 logback을 제외하고 slf4j-log4j12를 추가하여 수정했습니다.

<dependency>
  <groupId>net.sourceforge.jwebunit</groupId>
  <artifactId>jwebunit-htmlunit-plugin</artifactId>
  <version>3.0</version>
  <exclusions>
    <exclusion>
      <groupId>ch.qos.logback</groupId>
      <artifactId>logback-classic</artifactId>
    </exclusion>
  </exclusions>
</dependency>
<dependency>
  <groupId>org.slf4j</groupId>
  <artifactId>slf4j-log4j12</artifactId>
</dependency>

한 번 알아보는 데 오랜 시간이 걸렸어요. 이게 필요해요.

log4j.logger.httpclient.wire=ERROR

HttpClient는 "httpclient"를 사용하는 것 같습니다."wire"를 로거 이름으로 지정합니다.

교활한 놈들.

이건 나한테 효과가 있었어.

System.setProperty("org.apache.commons.logging.Log", "org.apache.commons.logging.impl.SimpleLog");
System.setProperty("org.apache.commons.logging.simplelog.showdatetime", "true");
System.setProperty("org.apache.commons.logging.simplelog.log.httpclient.wire.header", "error");
System.setProperty("org.apache.commons.logging.simplelog.log.org.apache.http", "error");
System.setProperty("log4j.logger.org.apache.http", "error");
System.setProperty("log4j.logger.org.apache.http.wire", "error");
System.setProperty("org.apache.commons.logging.simplelog.log.org.apache.commons.httpclient", "error");

이미 많은 답이 있다.어쨌든, 나는 나에게 효과가 있는 것을 쓰고 싶다. 그래야 누구나 시도해 볼 수 있을 것이다.

src/test/resources 내에 다음과 같은 logback-test.xml을 작성했습니다.

<configuration>
    <include resource="/org/springframework/boot/logging/logback/base.xml"/>
    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n
            </pattern>
        </encoder>
    </appender>
    <root level="info">
        <appender-ref ref="STDOUT"/>
    </root>
</configuration>

그 후 Junit Runner는 위의 로그레벨 "info"를 픽업하여 org.apache.http 로그는 없습니다.

제가 찾은 가장 좋은 해결책은 maven enforcer 플러그인을 사용하여 commons-logging이 완전히 사용되지 않도록 하는 것이었습니다.그 대신 로깅을 위한 slf4j 종속성을 추가했습니다.따라서 pom.xml에 다음 항목을 추가합니다.

<dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-api</artifactId>
        <version>[your version here]</version>
    </dependency>

또한 maven-carcer 플러그인 추가

<plugin>
           <groupId>org.apache.maven.plugins</groupId>
           <artifactId>maven-enforcer-plugin</artifactId>
           <version>[your version here]</version>
           <executions>
               <execution>
                   <id>enforce</id>
                   <configuration>
                       <rules>
                           <DependencyConvergence />
                           <bannedDependencies>
                               <excludes>
                                   <exclude>commons-logging:commons-logging</exclude>
                               </excludes>
                           </bannedDependencies>
                       </rules>
                   </configuration>
                   <goals>
                       <goal>enforce</goal>
                   </goals>
               </execution>
           </executions>
       </plugin>

rest 템플릿에 Http Components ClientHttpRequestFactory를 설정한 후 이러한 문제가 발생했습니다.

OkHttpClientHttpRequestFactory를 설정하면 휴지통 로깅 문제가 해결됩니다.

pom 파일에 다음 두 개의 종속성을 추가합니다.나는 전에 토론한 후에 시도했고 성공했습니다.

<!--Using logback-->
<dependency>
   <groupId>commons-logging</groupId>
   <artifactId>commons-logging</artifactId>
   <version>1.2</version>
</dependency>
<dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-logging</artifactId>
</dependency>

Commons-Logging -> Logback 및 디폴트 정보는 디버깅이 존재하지 않는 동안 사용할 수 있습니다.다음 항목을 사용할 수 있습니다.

private static Logger log = LoggerFactory.getLogger(HuaweiAPI.class);

기록할 정보를 정의하려면 다음과 같이 Final Result를 선택합니다.기록하려는 정보만 표시됩니다.

나는 위의 모든 해결책을 시도해 보았지만 소용이 없었다.가장 가까운 곳은 logback.xml 작성을 제안하는 쪽입니다.그것은 효과가 있었지만, 아무것도 기록되지 않았다.logback.xml을 가지고 놀다가 결국 이렇게 되었습니다.

<configuration>
  <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
    <withJansi>true</withJansi>
    <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
    </encoder>
  </appender>
  <root level="INFO">
    <appender-ref ref="STDOUT"/>
  </root>
</configuration>

이것으로 DEBUG 이하의 모든 레벨이 올바르게 기록됩니다.

포함:

  • Log2J 2 2.11.2
  • HttpClient 4.5.7(elasticsearch 7.0.0 rest 클라이언트)
  • 속성 파일을 사용하여 구성

추가할 수 있는 것:

logger.httpclient.name=org.apache.http
logger.httpclient.level=info

위의 예에서 'httpclient'는 사용자가 선택한 논리 이름입니다.

(Java 11 OpenFX 어플리케이션에서 테스트 완료).

이 경우 xml 설정을 사용하여 설정 파일에 추가합니다.

<logger name="org.apache.http">
    <level value="warn"/>
</logger>

언급URL : https://stackoverflow.com/questions/4915414/disable-httpclient-logging

반응형