2016-11-08 53 views
1

概述:如何通过从application.properties属性的logback配置文件

我使用哨兵附加器在我logback.xml文件,我想通过大量的标签作为参数从application.properties文件中的logback配置文件。

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 

注: 在application.properties的spring.profiles.active属性映射到在logback配置文件中使用springProfile标签。


但问题的是,“app.name”属性不能logback.xml文件中找到的事实。如果我用这个属性为系统属性它的工作原理,但我想通过它来配置从application.properties文件。

因此,任何解决方案,反馈和想法将得到高度赞赏。

回答

8

logback.xml包括:

<property resource="application.properties" /> 

然后你可以参考性的标准方法,例如${app.name}

+0

非常感谢你,我忘了这包括。 – saeedj

1

我发现春天已经支持<springProperty/>描述here一个标签的。这意味着你可以很容易地从属性的文件,即使这个变量的值从春季环境/系统变量解析增添变量。