Ich habe ein Spring MVC-Projekt mit Spring Boot (1.5.8.RELEASE) erstellt. Ich wählte web, jpa und mysql und fügte absolut nichts in meinem build.gradle
hinzu.Spring Boot Logger protokolliert nichts
Hier ist der relevante Teil meiner application.yml
:
logging:
level: trace
Das ist alles, die Konfiguration über die Protokollierung. Ich möchte nur, dass die Protokollmeldungen in der Konsole angezeigt werden, also lasse ich einfach die logging.path
weg.
Und ich habe den Controller
package com.example.controllers;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
// other imports ...
@RestController
@RequestMapping("/")
public class DummyController {
private static final Logger LOGGER =
LoggerFactory.getLogger(DummyController.class);
@GetMapping
public void foo() {
LOGGER.info("foo");
}
}
Wenn ich eine Anfrage an /
senden, erhalte ich eine 200 OK
Antwort, aber nichts erscheint im Protokoll. Seltsamerweise erscheinen die Protokollmeldungen von Spring Framework und Hibernate in der Konsole. Nur meine Ad-hoc-Log-Nachrichten fehlen.
Dann debuggte ich meinen Code und sah, dass der Vorgänger von LOGGER
(der Stamm des Logger-Baumes) ein Logger mit Log-Level INFO
ist. Das ist anscheinend nicht der Logger, den ich konfiguriert habe. Die offizielle Dokumentation von Spring sagt mir jedoch nicht, wie ich die gewünschte Logger-Instanz bekommen kann. Wie kann ich das machen? Stimmt etwas mit meinem Code nicht oder fehlt etwas in der Konfiguration?
Dann, wie in meinem Java-Code die Logger Instanz zu bekommen? Es gibt nicht einmal eine Zeile Java-Code auf dieser Seite. – Aetherus
hm, Sie Code sieht gut aus mir, Sie nähern sich 'private statische endgültige Logger LOGGER = LoggerFactory.getLogger (DummyController.class);' gibt Ihnen die Instanz und die empfohlene Möglichkeit zu gehen. Es fühlt sich irgendwie offensichtlich an, also vermisse ich wahrscheinlich etwas. Und ich denke, in dem Code, den Sie oben zeigen, sollte jeder Logger die Meldung "logger.info()" drucken, so dass Sie "foo" sehen sollten, egal, welchen Logging-Hebel Sie haben. Und ich habe gerade dieses neue Projekt überprüft – varren
@Aetherus sind Sie sicher, dass Sie nicht https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-logging.html#boot haben -features-custom-log-configuration andere Logging-Dateien in Ihrem Projekt? Und es gibt keinen Java-Code im Frühjahr docs, weil Sie eigentlich Logback verwenden + slf4j https://logback.qos.ch/manual/introduction.html Die erste Zeile im Frühjahr docs besagt, dass Sie einen der vorkonfigurierten Logger wählen können, also dort Es macht keinen Sinn, jeden Logger zu kopieren. Und meine Antwort war nur darauf hinzuweisen, dass Sie yaml ungültig ist und deshalb haben Sie Standard-INFO Root-Logger Eltern – varren