[JAVA] Protokoll mit slf4j + Logback mit Maven in externe Datei ausgeben

Dies ist der erste Beitrag. Ich denke, es gibt viele Punkte, die nicht erreicht werden können, aber danke.

Ich möchte das Protokoll in eine Datei ausgeben

Ich habe slf4j nicht richtig eingeführt, also habe ich diese Gelegenheit genutzt, um es zu versuchen. Tor

Entwicklungsumgebung

Erforderliche API --slf4j-api: Ausgabeprotokoll, wenn jar ausgeführt wird --logback-classic: Protokoll in Datei ausgeben --logback-core: Protokoll in Datei ausgeben

Andere notwendige Gegenstände

Definition von logback.xml

Für die Definition von logback.xml habe ich auf die Site verwiesen, die sehr detailliert zusammengefasst ist. Ich hoffe, Sie können sich darauf beziehen. Logback-Verwendungsprotokoll

Übrigens habe ich es wie folgt definiert.

logback.xml


<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE logback>
<configuration>
	<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
	    <encoder>
	        <pattern>%date{yyyy-MM-dd HH:mm:ss} [%thread] %level %logger{0} - %msg \(%file:%line\)%n</pattern>
	    </encoder>
	    <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
	        <level>DEBUG</level>
	    </filter>
	</appender>

	<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
	    <file>logs/app.log</file>
	    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
	        <fileNamePattern>logs/app.%d{yyyy-MM-dd}.log.tar.gz</fileNamePattern>
	        <maxHistory>7</maxHistory>
	    </rollingPolicy>
	    <encoder>
	        <pattern>%d{yyyy-MM-dd'T'HH:mm:ss'Z'} - %m%n</pattern>
	    </encoder>
	</appender>

	<root level="DEBUG" additivity="false">
	    <appender-ref ref="STDOUT" />
	    <appender-ref ref="FILE" />
	</root>

</configuration>

Definition von pom.xml

Ich habe versucht, die erforderliche API in der Abhängigkeit von maven zu definieren (dies ist falsch).

pom.xml


<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-api</artifactId>
    <version>1.7.25</version>
</dependency>

<dependency>
    <groupId>ch.qos.logback</groupId>
    <artifactId>logback-classic</artifactId>
    <version>1.1.3</version>
</dependency>

<dependency>
    <groupId>ch.qos.logback</groupId>
    <artifactId>logback-core</artifactId>
    <version>1.1.3</version>
</dependency>

Schreiben Sie also die folgende Quelle und führen Sie sie aus.

main.java


public class App
{
    private static Logger log = LoggerFactory.getLogger("test");
    public static void main( String[] args )
    {
    	log.debug("Protokollausgabetest");
    	log.info("Protokollausgabetest");
    	log.warn("Protokollausgabetest");
    	log.error("Protokollausgabetest");
    }
}

Ausgabe in das Konsolenprotokoll!

console.log



2019-03-03 14:56:28testtest [main] DEBUG test -Protokollausgabetest(App.java:19)
2019-03-03 14:56:28testtest [main] INFO test -Protokollausgabetest(App.java:20)
2019-03-03 14:56:28testtest [main] WARN test -Protokollausgabetest(App.java:21)
2019-03-03 14:56:28testtest [main] ERROR test -Protokollausgabetest(App.java:22)

Ausgabe in Protokolldatei!

app.log


2019-03-03T14:56:28Z -Protokollausgabetest
2019-03-03T14:56:28Z -Protokollausgabetest
2019-03-03T14:56:28Z -Protokollausgabetest
2019-03-03T14:56:28Z -Protokollausgabetest

Es wurde sicher ausgegeben.

Übrigens, wenn der folgende Fehler auftritt, kann die API gebucht werden.

SLF4J: No SLF4J providers were found.
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#noProviders for further details.

Es passierte, als ich diesen Artikel schrieb, aber anfangs dachte ich, dass logback-classic und logback-core in slf4j-api enthalten sind. Was jedoch tatsächlich enthalten war, war der Spring-Boot-Starter, und Logback-Classic und Logback-Core waren wirklich wichtig.

Referenzseite

Logback-Verwendungsprotokoll

Recommended Posts

Protokoll mit slf4j + Logback mit Maven in externe Datei ausgeben
Protokollausgabe in Datei in Java
Systemzeit mit Maven an MANIFEST.MF ausgeben
Slf4J + logback zum Eclipse Maven-Projekt hinzugefügt
Beispielcode für die Protokollausgabe von Java + SLF4J + Logback
Ausgabe einer CSV-Datei mit offener CSV
JavaDoc in Word-Datei ausgeben
Steuerprotokollausgabe mit Doma2
XML-Baum in Datei ausgeben
Geben Sie das integrierte Tomcat-Zugriffsprotokoll mit Spring Boot an die Standardausgabe aus
Ich möchte die Generierung / Öffnung einer Protokolldatei mit log4j # FileAppender verknüpfen
So erstellen Sie eine JAR-Datei ohne Abhängigkeiten in Maven
Geben Sie das Datum (z. B. JJJJ-MM-TT) in die Protokolldatei ein, die per Logback ausgegeben wird
Aktivieren Sie die Protokollausgabe sowohl für Dateien als auch für die Konsole mit log4j in Eclipse.
So geben Sie Jetty-Protokolle in ein beliebiges Verzeichnis aus
Geben Sie den HTTP-Header des zu protokollierenden Google-http-Clients aus
So erreichen Sie den Dateidownload mit Feign
So setzen Sie JAVA_HOME mit dem Appassembler-Maven-Plugin von Maven
So erreichen Sie das Hochladen von Dateien mit Feign
Schreiben wir die Eingabe / Ausgabe von Java-Dateien mit NIO
[Apache Camel] Einfacher Durchsatz in einem Protokoll ausgeben
Fügen Sie die von Maven erhaltene JAR-Datei zu IntelliJ hinzu
Maskieren Sie vertrauliche Informationen in Protokollnachrichten mit Logback
Die Tomcat 8.5-Protokollausgabe wurde durch Log4j2.8 oder höher ersetzt
[Spring Batch] Gibt Tabellendaten in eine CSV-Datei aus