web-dev-qa-db-de.com

Deaktivieren Sie die HttpClient-Protokollierung

Ich verwende commons-httpclient 3.1 in einer Integrationstest-Suite. Die Standardprotokollierung für HttpClient ist extrem laut und ich kann sie anscheinend nicht deaktivieren. Ich habe versucht die Anweisungen hier zu befolgen, aber keine davon macht einen Unterschied. 

Meistens muss ich nur den org.Apache.http.wire-Logger zum Schweigen bringen. Ein Teil des Problems ist, dass ich nicht weiß, welche Art von Logger HttpClient verwendet, und das meiste Problem ist, dass ich diese Bibliothek noch nie verwendet habe. Ich habe versucht, eine Datei "log4j.properties" zu erstellen und sie in meinem Ordner "test/resources" abzulegen, die Datei "master logging.properties" in "jre/lib" zu ändern und die verschiedenen Protokollierungsoptionen an Maven zu senden, wie auf der Protokollierungsseite angegeben , und keiner von ihnen macht einen Unterschied.

Jede Hilfe wird geschätzt ... das macht mich verrückt.

UPDATE: Eine Korrektur: Es scheint, dass die fragliche Ausgabe tatsächlich durch die Verwendung von HttpClient durch jwebunit verursacht wird, nicht durch meine eigene. So oder so ist es nicht wünschenswert.

UPDATE: Danke für die bisherigen Versuche. Ich habe alles ausprobiert, aber immer noch kein Glück. Ich habe eine Datei commons-logging.properties in meinem Ordner src/test/resources mit folgendem Inhalt

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

und eine Datei log4j.properties im selben Ordner mit folgendem Inhalt

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

Wenn ich meine Tests durchführe, bekomme ich jedoch noch eine Reihe von Ausgaben wie diese:

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]"

Diese Ausgabe für alles, was über den Draht kommt, macht diese Bibliothek für mich unbrauchbar ... bis ich herausfinden kann, wie ich sie ausschalten kann. Gibt es etwas Besonderes, das ich tun muss, um diese Protokollkonfiguration einzulesen?

113
Matt Baker

Aktualisieren Sie log4j.properties, um Folgendes aufzunehmen:

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

Wenn die Log4j-Bibliothek nicht installiert ist, verwendet HttpClient (und damit auch JWebUnit) logback. Erstellen oder bearbeiten Sie in dieser Situation logback.xml, um Folgendes aufzunehmen:

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

Das Festlegen der Protokollstufe auf WARN mit Log4j unter Verwendung des Paketnamens org.Apache.commons.httpclient in log4j.properties funktioniert nicht wie erwartet:

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

Dies liegt daran, dass die Quelle für HttpClient (v3.1) die folgenden Protokollnamen verwendet:

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

Hinweis: Einige dieser Antworten wiederholen möglicherweise Dinge, die Sie bereits kennen (oder glauben, Sie wissen zu wissen)), aber es gibt ein paar falsche Informationen zu dieser Frage, also beginne ich am Anfang und schreibe sie alle aus

  • Commons HttpClient verwendet Commons-Logging für alle Protokollierungsanforderungen.
  • Commons-Logging ist kein vollständiges Protokollierungs-Framework, sondern ein Wrapper für mehrere vorhandene Protokollierungs-Frameworks
  • Das heißt, wenn Sie die Protokollierungsausgabe steuern möchten, müssen Sie (meistens) eine andere Bibliothek als Commons-Logging konfigurieren, aber, da Commons-Logging mehrere andere Bibliotheken umgibt, was für uns schwer zu erraten ist welches man konfigurieren muss, ohne genau zu wissen, wie es eingestellt ist.
  • Commons-Logging kann sich in log4j, aber auch in Java.util.logging (JDK1.4-Protokollierung) anmelden.
  • Commons-Logging versucht, intelligent zu sein und zu raten, welches Protokollierungs-Framework Sie bereits verwenden, und sendet seine Protokolle an dieses Protokoll.
  • Wenn Sie noch nicht über ein Protokollierungsframework verfügen und auf einer JRE mit 1.4 oder höher laufen (was Sie eigentlich sein sollten), werden die Protokollnachrichten wahrscheinlich an die JDK-Protokollierung gesendet (Java.util.logging).
  • Der Mechanismus der automatischen Erkennung von Commons-Logging ist fehleranfällig. Wenn Sie einfach log4j.jar in den Klassenpfad einfügen, wechselt der verwendete Protokollierungsmechanismus, was wahrscheinlich nicht Ihren Vorstellungen entspricht
  • Sie sollten Commons-Logging explizit mitteilen, welche Protokollierungsbibliothek verwendet werden soll.
  • Sie können dies tun, indem Sie eine commons-logging.properties-Datei gemäß diesen Anweisungen erstellen
  • Die folgenden Schritte zum Konfigurieren der Protokollierung von commons-httpclient lauten
    1. Legen Sie fest, welches zugrunde liegende Protokollierungs-Framework Sie verwenden möchten. Es gibt eine Reihe von Optionen, aber log4j oder Java.util.logging sind wahrscheinlich die besten Optionen für Sie.
    2. Richten Sie die Commons-Logging-Eigenschaftendatei so ein, dass sie auf die korrekte Log-Implementierung verweist. z.B. Um log4j zu verwenden, geben Sie dies in die Eigenschaftendatei ein: org.Apache.commons.logging.Log=org.Apache.commons.logging.impl.Log4JLogger oder den JDK-Protokollierungssatz org.Apache.commons.logging.Log=org.Apache.commons.logging.impl.Jdk14Logger. Diese können auch als Systemeigenschaften festgelegt werden (z. B. mit -D in der Befehlszeile).
    3. Konfigurieren Sie die zugrunde liegende Protokollierungsimplementierung (z. B. log4j) so, dass die nicht gewünschten Nachrichten ignoriert werden, und geben Sie die gewünschten Nachrichten aus.

Das sind viele Schritte, aber das braucht es. Die Entwickler von Apache-Commons neigen zu der Annahme, dass bereits ein Protokollierungs-Framework konfiguriert ist, und sie können anhand der automatischen Erkennung herausfinden, um welches es sich handelt.
Wenn dies für Sie nicht zutrifft, ist es normalerweise ein bisschen mehr Arbeit, die Dinge zum Laufen zu bringen.

26
Tim

Ich habe dies in meine log4j-Konfigurationsdatei geschrieben

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

Dies begrenzt die Ausgabe auf Warnstufe oder höher

18
Philip Nuzhnyy

Das funktionierte für meine Tests.

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");
16

Fügen Sie für log4j Folgendes hinzu: log4j.properties (im Verzeichnis source der Anwendung):

log4j.logger.org.Apache=WARN
log4j.logger.httpclient=WARN

Für das Logback wird der folgende Befehl logback.xml das Geräusch abschalten:

<configuration>
    <logger name="org.Apache" level="WARN" />
    <logger name="httpclient" level="WARN" /> 
</configuration>
12
Ali Cheaito

Es dauerte viel zu lange, um dies herauszufinden, aber JWebUnit wird mit der Logback -Logging-Komponente ausgeliefert, so dass log4j.properties oder commons-logging.properties nicht einmal verwendet wird.

Erstellen Sie stattdessen eine Datei mit dem Namen logback.xml und legen Sie sie in Ihrem Quellcode-Ordner ab (in meinem Fall 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 scheint noch in der Entwicklung zu sein und die API scheint sich immer noch zu ändern, daher kann dieses Codebeispiel in der Zukunft fehlschlagen. Siehe auch diese StackOverflow-Frage .

10
jevon

Wir verwenden XML anstelle einer Eigenschaftendatei, um unsere Protokollierungsausgabe zu konfigurieren. Mit dem folgenden Code wurde dieses Chatter stummgeschaltet.

<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>
8
barclay

Ich hatte dieses Problem bei der Verwendung von RestAssured mit JUnit. Für mich hat dieser programmatische Ansatz funktioniert:

@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);

    //...
}
4
tanacsg

In Ihrer log4.properties - haben Sie dieses Set wie ich unten und keine anderen org.Apache.http-Logger in der Datei?

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

Wenn Sie in der log4j-Eigenschaftendatei keine Protokollstufe für org.Apache.http angegeben haben, wird die Ebene log4j.rootLogger übernommen. Wenn Sie log4j.rootLogger so eingestellt haben, dass wir beispielsweise ERROR sagen und org.Apache.http-Einstellungen in Ihrer log4j.properties-Datei entfernen, sollten ERROR-Meldungen nur durch Vererbung protokolliert werden.

UPDATE:

Erstellen Sie eine commons-logging.properties-Datei und fügen Sie die folgende Zeile hinzu. Stellen Sie außerdem sicher, dass sich diese Datei in Ihrem CLASSPATH befindet.

org.Apache.commons.logging.LogFactory = org.Apache.commons.logging.impl.Log4jFactory

Eine vollständige log4j-Datei und der Code zum Aufrufen für das OP hinzugefügt. Diese log4j.properties sollte sich in Ihrem CLASSPATH befinden. Ich gehe für den Moment von stdout aus.

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

Hier ist etwas Code, den Sie Ihrer Klasse hinzufügen müssen, um den Logger aufzurufen.

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
}
4
CoolBeans

Ich bin schon seit einiger Zeit von demselben Thema geplagt und entschied mich schließlich, dies zu untersuchen. Es stellte sich heraus, dass das Problem darin bestand, dass mein Projekt eine Abhängigkeit von http-builder-0.5.2.jar hatte, wodurch eine log4j.xml-Datei in sich selbst gebündelt wurde. Und natürlich war der Log-Level für org.Apache.http.wire DEBUG! Ich fand es nur so, dass ich alle JAR-Dateien in meinen Abhängigkeiten durchging und "jar tvf" und grepping für log4j machte. 

Während diese Entdeckung zu einer möglichen Lösung führte, in der die Version meiner http-builder-Abhängigkeit auf 0,6 erhöht wurde, verblüfft es mich immer noch, was den Entwicklern durch den Kopf gegangen sein muss, als ich die log4j.xml-Datei in die JAR-Datei bündelte. Wie auch immer, das ist für diesen Thread wahrscheinlich vorerst nicht relevant. Aber ich dachte, es wäre nützlich, diese Lösung zu erwähnen, die ich gefunden habe, als ich vorher nach einer Lösung gesucht habe und meine nie aufgetaucht ist. Hoffentlich findet jemand das nützlich.

4
paulito415

Einfache Art, wie Log4j und HttpCLient (v3.1 in diesem Fall besser funktionieren sollten, könnte geringfügige Änderungen erforderlich machen)

Stellen Sie sicher, dass alle Abhängigkeiten korrekt sind, und MD5 Ihre Downloads! 

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();
3
WiR3D

Ich hatte das gleiche Problem mit JWebUnit. Bitte beachten Sie, dass Logback ein Standardlogger ist, wenn Sie die binäre Verteilung verwenden. Um log4j mit JWebUnit zu verwenden, habe ich folgende Schritte ausgeführt:

  • logback-Gläser entfernt
  • fügen Sie die lod4j-Bridge-Bibliothek für sfl4j hinzu - slf4j-log4j12-1.6.4.jar
  • fügen Sie log4j.properties hinzu

Wahrscheinlich müssen Sie Logback-Gläser nicht entfernen, aber Sie müssen einen zusätzlichen Schritt machen, um slf4j zur Verwendung von log4j zu zwingen

3
Lukasz Lacki

Die folgenden 2 Zeilen haben mein Problem vollständig gelöst:

Logger.getLogger("org.Apache.commons.httpclient").setLevel(Level.ERROR);
Logger.getLogger("httpclient").setLevel(Level.ERROR);
3
Tosha

Ich wurde zu diesem Beitrag geführt, als ich nach einer Lösung für ein ähnliches Problem suchte. Tims Antwort war sehr hilfreich. Wie Matt Baker möchte ich nur das httpClient-Protokoll ohne zu große Konfiguration abschalten. Da wir nicht sicher waren, welche Protokollierungsimplementierung unter der allgemeinen Protokollierung verwendet wurde, erzwang es My log. Die Standardeinstellung der log4j-Konfiguration deaktiviert die Debug-Ausgabe von "common-httpclient". Natürlich können Sie zur Erhöhung der Stabilität auch die Dateien common-logging.properties und log4j.properties erstellen, um Ihre Protokollierungskonfigurationen weiter zu definieren.

2
bcxw

Versuchen Sie es 

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

in Ihren commons-logging.properties

2
Safrain

Ich hatte das gleiche Problem beim Ausführen von Jwebunit-Integrationstests. Ich habe es behoben, indem ich logback ausschließe und in slf4j-log4j12 hinzufüge:

<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>
1
David Pomeroy

Wenn Sie für Apache 4.5.3 die Ebene für alle Apache-HTTP-Clientprotokolle nach Warn verschieben möchten, verwenden Sie:

log4j.logger.org.Apache=WARN
1
Adrian Elder

Ich hatte auch das gleiche Problem. Die gesamte Konsole wurde beim Ausführen der Tests mit [main] DEBUG org.Apache.http.wire gefüllt.

Die Lösung, die für mich funktionierte, war das Erstellen eines logback-test.xml src/test/resources/logback-test .xml wie in https://github.com/bonigarcia/webdrivermanager-examples/blob/master/src/test/resources/logback-test.xml ( ref - https://github.com/bonigarcia/webdrivermanager/issues/2 )

Um meine Protokollierungsinformationen anzuzeigen, habe ich den Protokollierungsnamen = "io.github.bonigarcia" durch meinen Paketnamen ersetzt

<?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>
1
nantitv

Ich brauchte eine Ewigkeit, um herauszufinden, was Sie brauchen:

log4j.logger.httpclient.wire=ERROR

Ich denke, HttpClient verwendet "httpclient.wire" als Logger-Namen, nicht "org.Apache.commons.httpclient".

Hinterlistige Kerle.

1
Adriaan Koster

Fügen Sie die folgenden Zeilen in die Eigenschaftsdatei von log4j ein, und die http-Protokolle werden geschlossen: - log4j.logger.org.Apache.http = OFF 

1
Rancho

Die beste Lösung, die ich gefunden habe, war die Verwendung des Maven Enforcer-Plugins, um zu verhindern, dass Commons-Logging vollständig verwendet wird. Dann habe ich die slf4j-Abhängigkeit für die Protokollierung hinzugefügt. Fügen Sie Ihrer pom.xml also folgendes hinzu

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

und fügen Sie auch das Maven-Enforcer-Plugin hinzu

<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>

In meinem Fall verwende ich die XML-Konfiguration und hänge diese an die Konfigurationsdatei an

<logger name="org.Apache.http">
    <level value="warn"/>
</logger>
0
Harun

Mit:

  • Log2J 2 2.11.2
  • HttpClient 4.5.7 (elasticsearch 7.0.0 rest client)
  • Verwenden der Eigenschaftendatei zum Konfigurieren

Man kann hinzufügen:

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

Mit 'httpclient' im obigen Beispiel als logischen Namen, den Sie auswählen.

(Getestet unter Java 11 OpenFX-Anwendung.)

0
Imifos

Versuchen Sie 'log4j.logger.org.Apache.http.headers = ERROR'

0
Fracdroid

Ich habe alle oben genannten Lösungen ohne Erfolg versucht. Die eine Lösung, die mir am nächsten kam, war die, die vorschlug, eine logback.xml zu erstellen. Das hat funktioniert, aber es wurde nichts protokolliert. Nachdem ich mit der logback.xml herumgespielt habe, ist dies das, was ich letztendlich gemacht habe

<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>

Jetzt werden alle Level unter DEBUG korrekt protokolliert.

0
aggaton

Fügen Sie einfach diese beiden Abhängigkeiten in die POM-Datei ein: Ich habe es versucht, nachdem ich die Diskussion zuvor versucht habe.

<!--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 und Standard-Info während Debug ist nicht vorhanden; Sie können Folgendes verwenden:

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

so definieren Sie die Informationen, die Sie protokollieren möchten: wie Endergebnis Nur die Informationen, die ich protokollieren möchte, sind vorhanden.

0
Herman XU

Dieses Problem trat auf, nachdem ich HttpComponentsClientHttpRequestFactory für meine Restvorlage festgelegt hatte.

Durch die Einstellung von OkHttpClientHttpRequestFactory sollte das Problem mit der Papierkorbprotokollierung gelöst werden.

0
sann05