file и stdout appenders в logback.xml

24

У меня есть 2% файлов co_de% в отдельных проектах. Один журнал JDBC SQL для файла с использованием FileAppender и других ошибок журналов в stdout с помощью ConsoleAppender.

Вот мои файлы logback.xml для каждого.

Регистрация файлов

<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>

Запись в консоль

<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>

Я объединяю эти два проекта, и я хочу, чтобы иметь возможность продолжить регистрацию информационного уровня SQL в файл и ошибки в STDOUT.

Я добавил два appenders в logback.xml , но я не уверен, что делать с регистраторами и корневыми тегами в моем новом logback.xml .

    
задан The Cat 28.02.2013 в 17:43
источник

2 ответа

25

Попробуйте следующее:

    <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>
    
ответ дан Jintian DENG 01.03.2013 в 02:56
10

Если вы хотите, чтобы результат вывода в файле и консоли использовал два appender-ref:

 <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>
    
ответ дан Edgard Leal 12.02.2014 в 19:03