2016-02-26 27 views
12

Próbuję podzielić moją logback.xml profilami pod springboot, to moje podejście:Konfiguracja logback stosując kilka profili

logback-prod.xml

<?xml version="1.0" encoding="UTF-8"?> 
<configuration> 
<include resource="org/springframework/boot/logging/logback/defaults.xml" /> 
<property name="LOG_FILE" value="${LOG_FILE:-${LOG_PATH:-${LOG_TEMP:- ${java.io.tmpdir:-/tmp}}/}spring.log}"/> 
<include resource="org/springframework/boot/logging/logback/file- appender.xml" /> 

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

logback-dev. xml

<?xml version="1.0" encoding="UTF-8"?> 
<configuration> 
<include resource="org/springframework/boot/logging/logback/defaults.xml" /> 
<include resource="org/springframework/boot/logging/logback/console-appender.xml" /> 

<root level="DEBUG"> 
    <appender-ref ref="CONSOLE" /> 
</root> 

logback.xml

<?xml version="1.0" encoding="UTF-8"?> 
<configuration> 
<include resource="logback-${spring.profiles.active}.xml"/> 

<root level="INFO"> 
    <appender-ref ref="FILE" /> 
    <appender-ref ref="CONSOLE" /> 
</root> 

I wreszcie użyć:

-Dspring.profiles.active=dev 
or 
-Dspring.profiles.active=prod 

mam w konsoli:

13:01:44,673 |-ERROR in [email protected]:16 - no applicable action for [configuration], current ElementPath is [[configuration][configuration]] 
13:01:44,674 |-ERROR in [email protected]:81 - no applicable action for [include], current ElementPath is [[configuration][configuration][include]] 
13:01:44,674 |-ERROR in [email protected]:89 - no applicable action for [include], current ElementPath is [[configuration][configuration][include]] 
13:01:44,674 |-ERROR in [email protected]:25 - no applicable action for [root], current ElementPath is [[configuration][configuration][root]] 
13:01:44,674 |-ERROR in [email protected]:39 - no applicable action for [appender-ref], current ElementPath is [[configuration][configuration][root][appender-ref]] 
13:01:44,675 |-INFO in ch.qos.logback.classic.joran.action.RootLoggerAction - Setting level of ROOT logger to INFO 

Odpowiedz

0

Cóż, znalazłem jedno rozwiązanie:

Przenoszę właściwość jako do pliku application.properties, a także usunięto katalog główny znacznika logback.xml i działał poprawnie.

+0

Jak zarządzać różnymi logback.xml dla różnych środowisk. Chcę mieć osobny plik logback.xml dla każdego środowiska/profilu? – Sachin

40

Spring boot documentation zaleca stosowanie logback-spring.xml zamiast logback.xml aw niej można użyć profilu sprężyny tag:

<configuration> 
    <springProfile name="workspace"> 
    ... 
    </springProfile> 
    <springProfile name="dev,prd"> 
    ... 
    </springProfile> 
</configuration>