Ceci est le premier message. Je pense que de nombreux points ne peuvent être atteints, mais merci.
Je n'ai pas correctement introduit slf4j, j'ai donc profité de l'occasion pour l'essayer. objectif
Environnement de développement
API requise --slf4j-api: journal de sortie lorsque jar est exécuté --logback-classic: sortie du journal dans un fichier --logback-core: sortie du journal dans un fichier
Autres articles nécessaires
Pour la définition de logback.xml, je me suis référé au site qui est résumé de manière assez détaillée. J'espère que vous pourrez vous y référer. Mémo d'utilisation de Logback
Au fait, je l'ai défini comme suit.
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>
J'ai essayé de définir l'API requise dans la dépendance de maven (c'est faux).
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>
Alors, écrivez la source suivante et exécutez-la.
main.java
public class App
{
private static Logger log = LoggerFactory.getLogger("test");
public static void main( String[] args )
{
log.debug("Test de sortie de journal");
log.info("Test de sortie de journal");
log.warn("Test de sortie de journal");
log.error("Test de sortie de journal");
}
}
Sortie dans le journal de la console!
console.log
2019-03-03 14:56:28testtest [main] DEBUG test -Test de sortie de journal(App.java:19)
2019-03-03 14:56:28testtest [main] INFO test -Test de sortie de journal(App.java:20)
2019-03-03 14:56:28testtest [main] WARN test -Test de sortie de journal(App.java:21)
2019-03-03 14:56:28testtest [main] ERROR test -Test de sortie de journal(App.java:22)
Sortie dans le fichier journal!
app.log
2019-03-03T14:56:28Z -Test de sortie de journal
2019-03-03T14:56:28Z -Test de sortie de journal
2019-03-03T14:56:28Z -Test de sortie de journal
2019-03-03T14:56:28Z -Test de sortie de journal
Il était sorti en toute sécurité.
En passant, si l'erreur suivante se produit, l'API peut être réservée.
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.
C'est arrivé quand j'ai écrit cet article, mais au départ, je pensais que logback-classic et logback-core étaient inclus dans slf4j-api. Cependant, ce qui était réellement inclus était spring-boot-starter, et logback-classic et logback-core étaient vraiment essentiels.
Recommended Posts