web-dev-qa-db-fra.com

Désactiver le journal Spring pour avoir des journaux lisibles

Comment puis-je désactiver les journaux Spring pour avoir des sorties de journal que je peux facilement lire ou que quelqu'un d'autre peut lire. Une réponse à une question similaire à, comment désactiver le journal de chargement des beans Spring a suggéré de mettre en commentaire toutes les lignes ayant org.springframeworksubstring dans log4j.propertiesfile. Dans mon cas, il n'y a pas de telles lignes.

Voici log4j.properties

# Define the root logger with appender file
log4j.rootLogger = DEBUG, stdout

# Define the file appender
log4j.appender.stdout=org.Apache.log4j.ConsoleAppender
# Set the name of the logs destination
log4j.appender.stdout.target=System.out

# Set the immediate flush to true (default)
log4j.appender.stdout.ImmediateFlush=true

# Set the threshold to debug mode
log4j.appender.stdout.Threshold=debug

# Set the append to false, overwrite
log4j.appender.stdout.Append=false

# Define the layout for appender
log4j.appender.stdout.layout=org.Apache.log4j.PatternLayout
log4j.appender.stdout.layout.conversionPattern=%d{yyyy-MM-dd}:%m%n 
18
LeandreM

Votre journalisation par défaut, pour tout ce qui n'est pas explicitement spécifié, est DÉBOGAGE . Donc, tout est enregistré à ce niveau (à en juger par votre configuration), fondamentalement, vous inondez vos journaux. Vous ne devez pas supprimer les enregistreurs pour org.springframework, vous devez les ajouter et définir un autre niveau pour eux.

log4j.logger.org.springframework=INFO 

ou quel que soit le niveau de journal que vous aimez.

31
M. Deinum

Avant de le faire, vous devriez avoir une certaine connaissance de:

1.How to add maven dependency 
2.Where to put log4j configuration file

OK, revenez à la question.La meilleure réponse ne fonctionne pas pour le printemps 4.x, si vous utilisez spring4.x, essayez de suivre les 3 étapes suivantes:

  1. retirer common-logging de spring-core

    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-core</artifactId>
        <version>4.3.4.RELEASE</version>
        <exclusions>
            <exclusion>
                <groupId>commons-logging</groupId>
                <artifactId>commons-logging</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
    

    Sans cette étape, peu importe ce que vous mettez dans le fichier de configuration log4j ne fonctionne pas, le ressort utilise common-logging mon garçon!
    PS: Dans de nombreux modules à ressort, spring-core est le seul module qui dépend explicitement de commons-logging.

  2. Ajouter SLF4J et log4j

    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>jcl-over-slf4j</artifactId>
        <version>1.5.8</version>
    </dependency>
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-api</artifactId>
        <version>1.5.8</version>
    </dependency>
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-log4j12</artifactId>
        <version>1.5.8</version>
    </dependency>
    <dependency>
        <groupId>log4j</groupId>
        <artifactId>log4j</artifactId>
        <version>1.2.14</version>
    </dependency>
    
  3. configurer log4j.properties (vous pouvez également utiliser un fichier xml)

    log4j.rootCategory = INFO, stdout

    log4j.appender.stdout = org.Apache.log4j.ConsoleAppender log4j.appender.stdout.layout = org.Apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern =% d {ABSOLUTE}% 5p% t% c { 2}:% L -% m% n

    log4j.category.org.springframework.beans.factory = INFO

Maintenant, le journal de débogage ennuyeux du printemps est en train de disparaître.

La réponse est de doc spring.io, pour l'origine cliquez sur ici

9
Ajax

Toutes les réponses ont donné des exemples de configuration dans log4j.properties, ce qui a été demandé. J'ai eu le même problème mais j'utilisais la configuration dans log4j2.xml et les réponses m'amènent ici à une solution.

Dans le cas où quelqu'un est sur le même bateau que moi, voici ce que j'ai fait: j'ai ajouté un noeud Logger avec le nom org.springframework et le niveau WARN comme indiqué dans l'exemple suivant:

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN">
    <Appenders>
        <Console name="Console" target="SYSTEM_OUT">
            <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
        </Console>
    </Appenders>
    <Loggers>
        <Logger name="org.springframework" level="WARN"/>
        <Root level="info">
            <AppenderRef ref="Console"/>
        </Root>
    </Loggers>
</Configuration>

J'utilise Spring Boot et l'exclusion que je fais est logback-classique comme indiqué dans l'extrait de code suivant:

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter</artifactId>
        <exclusions>
            <exclusion>
                <groupId>ch.qos.logback</groupId>
                <artifactId>logback-classic</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
4
Vlad G.

Vous pouvez spécifier le nom de package requis, comme illustré dans l'exemple suivant:

log4j.logger.com.foo=WARN

Maintenant, vous ne pouvez voir que les journaux WARN, ERROR et FATAL dans la console.

3
Hemanth

J'étais également confronté à ce même problème. La journalisation Springframework n'était pas supprimée même après la configuration de log4j. Ensuite, j'ai trouvé que sa journalisation dépend de la journalisation des communs.

Vous devez désactiver commons-logging à partir de la dépendance dans le fichier pom.xml de l'application Web.

Même après avoir supprimé commons-logging à partir de pom.xml, veuillez vérifier la hiérarchie des dépendances disponible dans Eclipse ou STS IDE. Cela vous aidera à savoir si elle est en quelque sorte ajoutée à cause d'une autre gestion des dépendances que nous ne connaissons peut-être pas.

Après avoir supprimé la dépendance, ajoutez simplement log4j.logger.org.springframework=ERROR à votre configuration log4j. CA aidera.

1
SachinSarawgi