как включить xml в log-back. xml - PullRequest
1 голос
/ 07 апреля 2020

Я пишу собственный стартовый весенний загрузочный проект для регистрации. Мой logback-spring. xml становится большим и хочет поместить appenders в отдельный файл (console-appender. xml и file-appender. xml) и хочет включить его в файл logback-spring. xml как ниже. Я помещаю все три xmls в папку src / main / resources в моем пользовательском стартовом проекте.

<?xml version="1.0" encoding="UTF-8"?>
<configuration>

    <springProperty scope="context" name="JSONLOGSENABLED" source="spring.logs.json.enabled" defaultValue="true" />
    <springProperty scope="context" name="JSONLOGSAPPENDER" source="spring.logs.json.appender" defaultValue="console" />

    <if condition='property("JSONLOGSENABLED").equalsIgnoreCase("true")'>
        <then>

        <include file="{path to file}/console-appender.xml"/>
        <include file="{path to file}/file-appender.xml"/>
        <root level="INFO">
            <if condition='property("JSONLOGSAPPENDER").equalsIgnoreCase("file")'>
                <then>
                    <appender-ref ref="FILEJSON" />
                </then> 
            <else>
                <appender-ref ref="CONSOLEJSON" />
           </else>
           </if>
        </root>
    </then>
    </if>

    <logger
        name="org.springframework.web.filter.CommonsRequestLoggingFilter">
        <level value="DEBUG" />
    </logger>

</configuration>

file-appender. xml

<appender name="FILE" class="ch.qos.logback.core.FileAppender">
    <file>testFile.log</file>
    <append>true</append>
    <!-- set immediateFlush to false for much higher logging throughput -->
    <immediateFlush>true</immediateFlush>
    <!-- encoders are assigned the type
         ch.qos.logback.classic.encoder.PatternLayoutEncoder by default -->
    <encoder>
      <pattern>%-4relative [%thread] %-5level %logger{35} - %msg%n</pattern>
    </encoder>
  </appender>

Но при использовании этого стартера в мое весеннее загрузочное приложение не может разрешить файлы консоли и файловых приложений.

Я попытался указать следующие пути:

 <include file="/src/main/resources/console-appender.xml"/>
 <include file="./console-appender.xml"/>
 <include resource="console-appender.xml"/>

Как правильно включить файлы в этом случае?

1 Ответ

1 голос
/ 07 апреля 2020

Да, это возможно. Logback использует Joran, поэтому вы должны следовать правилам Joran.
Для получения дополнительной информации см. документация .

В любом случае, это предпочтительный способ сделать то, что вы ищете.
Например, я определяю два файла, затем вы адаптируете их по своему усмотрению.

logback-spring. xml

<?xml version="1.0" encoding="UTF-8"?>

<configuration>
    <include resource="console-appender.xml"/>

    <root level="debug">
        <appender-ref ref="CONSOLE"/>
    </root>
</configuration>   

консоль-доп. xml

<included>
    <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>%date{"yyyy-MM-dd HH:mm:ss.SSS", Europe/Rome} [%mdc{id}] [%-11thread] %-5level %logger{36} - %msg%n</pattern>
        </encoder>
    </appender>
</included>

Обратите внимание, что <included> тег обязательный

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...