[JAVA] Journal de sortie vers un fichier externe avec slf4j + logback avec Maven

Ceci est le premier message. Je pense que de nombreux points ne peuvent être atteints, mais merci.

Je souhaite exporter le journal dans un fichier

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

définition de logback.xml

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>

définition de pom.xml

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.

Site de référence

Mémo d'utilisation de Logback

Recommended Posts

Journal de sortie vers un fichier externe avec slf4j + logback avec Maven
Enregistrer la sortie dans un fichier en Java
Sortie de l'heure système sur MANIFEST.MF avec Maven
Ajout de slf4J + logback au projet Eclipse Maven
Exemple de code pour la sortie du journal par Java + SLF4J + Logback
Sortie de fichier csv avec csv ouvert
Sortie javaDoc dans un fichier Word
Contrôle de la sortie du journal avec Doma2
Sortie de l'arborescence XML dans un fichier
Sortez le journal d'accès Tomcat intégré à la sortie standard avec Spring Boot
Je veux accrocher la génération / ouverture d'un fichier journal avec log4j # FileAppender
Comment créer un fichier jar sans dépendances dans Maven
Mettez la date (par exemple aaaa-MM-jj) dans la sortie du fichier journal par logback
Activez la sortie du journal vers les fichiers et la console à l'aide de log4j dans Eclipse.
Comment générer des journaux Jetty dans n'importe quel répertoire
Sortie de l'en-tête HTTP de google-http-client à journaliser
Comment réaliser le téléchargement de fichiers avec Feign
Comment définir JAVA_HOME avec l'appassembler-maven-plugin de Maven
Comment réaliser le téléchargement de fichiers avec Feign
Écrivons l'entrée / sortie de fichier Java avec NIO
[Apache Camel] Sortie facile du débit dans un journal
Ajouter un fichier jar obtenu de Maven à IntelliJ
Masquer les informations confidentielles dans les messages du journal avec Logback
Remplacement de la sortie du journal Tomcat 8.5 par Log4j2.8 ou version ultérieure
[Spring Batch] Données de la table de sortie dans un fichier CSV