Dies ist der erste Beitrag. Ich denke, es gibt viele Punkte, die nicht erreicht werden können, aber danke.
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
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>
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.
Recommended Posts