@bigMOTOR

Spring-Logback-Maven — как вынести настройки Logback в Спринговый application.properties?

Добрый день!

Помогите, пожалуйста, со связкой Spring-Logback-Maven. Я уже всю голову сломал (((

Итак, используется Spring, Logback и Maven. Хочу собрать все настройки в Спринговом application.properties, который будет вне Jar, собираемого Мавеном.
Вынес из Logback.xml все интересующие настройки теперь он такой:
<configuration>

    <property resource="application.properties" />

    <timestamp key="byDate" datePattern="yyyyMMdd"/>

    <!-- Send messages to System.out - CONSOLE -->
    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <!-- encoders are assigned the type ch.qos.logback.classic.encoder.PatternLayoutEncoder by default -->
        <encoder>
            <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{5} - %msg%n</pattern>
        </encoder>
        <withJansi>true</withJansi>
    </appender>

    <!-- Send messages to a file -->
    <appender name="FILE" class="ch.qos.logback.core.FileAppender">
        <file>${logging.path}/${spring.application.name}-${byDate}.log</file>
        <append>true</append>
        <!-- encoders are assigned the type ch.qos.logback.classic.encoder.PatternLayoutEncoder by default -->
        <encoder>
            <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{5} - %msg%n</pattern>
        </encoder>
    </appender>

    <root level="${logging.level}">
        <appender-ref ref="STDOUT" />
        <appender-ref ref="FILE" />
    </root>

</configuration>

Занес в application.properties:
#Spring settings
spring.application.name=MyApp
server.port=8087

# Logging settings
logging.level=INFO
logging.path=/Users/...some path.../logs/

Внес в beans искать application.properties рядом:
<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
        <property name="location" value="file:application.properties"/>
    </bean>

В pom-файле исключил application.properties из Jar:
<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-jar-plugin</artifactId>
    <version>2.6</version>
    <configuration>
      <excludes>
        <exclude>path/to/application.properties</exclude>
      </excludes>
    </configuration>
  </plugin>

И добавил простое копирование рядом:
<plugin>
                <artifactId>maven-antrun-plugin</artifactId>
                <executions>
                    <execution>
                        <phase>validate</phase>
                        <goals>
                            <goal>run</goal>
                        </goals>
                        <configuration>
                            <tasks>
                                <copy todir="target" overwrite="true">
                                    <fileset dir="src/main/resources/">
                                        <include name="*.properties"/>
                                    </fileset>
                                </copy>
                            </tasks>
                        </configuration>
                    </execution>
                </executions>
            </plugin>

В IDE все отлично работает - как надо. А вот после сборки Мавеном и запуска Jar теряется шаблон имени файла (просто Spring.log становится) и уровень логирования не подтягивается. При этом путь до логов подтягивается, ошибок никаких.
Буду очень-очень благодарен за помощь!
  • Вопрос задан
  • 1315 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы