web-dev-qa-db-fra.com

fichier et stdout appenders dans logback.xml

J'en ai 2 logback.xml fichiers dans des projets séparés. L'un enregistre JDBC SQL dans un fichier à l'aide d'un FileAppender et l'autre enregistre les erreurs dans stdout à l'aide d'un ConsoleAppender.

Voici mes fichiers logback.xml pour chacun.

Journalisation des fichiers

<configuration>
    <appender name="FILE" class="ch.qos.logback.core.FileAppender">
        <file>${user.home}/database.log</file>
        <append>false</append>
        <encoder>
            <pattern>%-5relative %-5level %logger{35} - %msg%n</pattern>
        </encoder>
    </appender>

    <logger name="jdbc" level="OFF" />
    <logger name="jdbc.sqlonly" level="debug" />

    <root level="info">
        <appender-ref ref="FILE" />
    </root>
</configuration>

Journalisation de la console

<configuration>
    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>%-5relative %-5level %logger{35} - %msg%n</pattern>
        </encoder>
    </appender>

    <logger name="jdbc" level="OFF" />

    <root level="ERROR">
        <appender-ref ref="STDOUT" />
    </root>
</configuration>

Je fusionne ces deux projets et je veux pouvoir continuer à enregistrer le niveau d'information SQL dans le fichier et les erreurs dans STDOUT.

J'ai ajouté les deux appendices au logback.xml mais je ne sais pas quoi faire avec les enregistreurs et les balises racine dans mon nouveau logback.xml.

28
The Cat

Essaye ça:

    <configuration>
        <appender name="FILE" class="ch.qos.logback.core.FileAppender">
            <file>${user.home}/database.log</file>
            <append>false</append>
            <encoder>
                <pattern>%-5relative %-5level %logger{35} - %msg%n</pattern>
            </encoder>
        </appender>

        <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
            <encoder>
                <pattern>%-5relative %-5level %logger{35} - %msg%n</pattern>
            </encoder>
        </appender>


        <logger name="jdbc" level="OFF" />
        <logger name="jdbc.sqlonly" level="INFO" additivity="false">
            <appender-ref ref="FILE" />
        </logger>

        <root level="ERROR">
            <appender-ref ref="STDOUT" />
        </root>
    </configuration>
29
Jintian DENG

Si vous voulez voir la sortie dans fichier et console utilisez deux références d'appendice comme ceci:

 <configuration>
    <appender name="FILE" class="ch.qos.logback.core.FileAppender">
        <file>${user.home}/database.log</file>
        <append>false</append>
        <encoder>
            <pattern>%-5relative %-5level %logger{35} - %msg%n</pattern>
        </encoder>
    </appender>

    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>%-5relative %-5level %logger{35} - %msg%n</pattern>
        </encoder>
    </appender>


    <logger name="jdbc" level="OFF" />
    <logger name="jdbc.sqlonly" level="INFO" additivity="false">
        <appender-ref ref="FILE" />
    </logger>

    <root level="ERROR">
        <appender-ref ref="STDOUT" /> <!-- Every log will apear on screen log -->
        <appender-ref ref="FILE" />   <!-- Every log will apear on file -->
    </root>
</configuration>
12
Edgard Leal