2016-11-08 3 views
1

Vue d'ensemble:Comment passer des propriétés de application.properties à Logback fichier config

J'utilise Sentry appender dans mon fichier logback.xml et je veux passer beaucoup de balises en tant que paramètres du fichier application.properties à Logback config fichier.

fichier logback.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/file-appender.xml"/> 
    <include resource="org/springframework/boot/logging/logback/console-appender.xml"/> 

    <appender name="SENTRY" class="com.getsentry.raven.logback.SentryAppender"> 
     <dsn> 
      https://e0a61232c92f42ffa34c22914d676a8e:[email protected]/112817 
     </dsn> 
     <springProfile name="dev"> 
      <tags>env:dev,app:${app.name},platform:aws</tags> 
     </springProfile> 
     <springProfile name="stage"> 
      <tags>env:dev</tags> 
     </springProfile> 
     <springProfile name="test"> 
      <tags>env:test</tags> 
     </springProfile> 

     <filter class="ch.qos.logback.classic.filter.ThresholdFilter"> 
      <level>ERROR</level> 
     </filter> 
    </appender> 

    <root level="ERROR"> 
     <appender-ref ref="CONSOLE"/> 
     <appender-ref ref="SENTRY"/> 
    </root> 

</configuration> 

application.properties:

security.ignored=/** 

logging.level.root = DEBUG 

spring.profiles.active=dev 
app.name=retailServices 

Note: la propriété spring.profiles.active en application.properties est mis en correspondance balise springProfile dans le fichier de configuration de logback.


Mais la question est le fait que la propriété « app.name » ne peut être trouvé dans le fichier logback.xml. Si j'utilise cette propriété en tant que propriétés système, cela fonctionne mais je veux la passer au fichier de configuration à partir de application.properties.

Ainsi, toute solution, rétroaction et idée seraient très appréciées.

Répondre

8

En logback.xml comprennent:

<property resource="application.properties" /> 

Et vous pouvez alors consulter les propriétés d'une manière standard, par exemple ${app.name}.

+0

Merci beaucoup, j'ai oublié cette inclusion. – saeedj

1

J'ai trouvé que Spring a l'appui de l'étiquette suivante <springProperty/> décrite here. Cela signifie que vous pouvez facilement ajouter une variable à partir de fichiers de propriétés, même si cette variable ressort de la variable environnement/variable système.