目前,我正在尝试使我的网络应用仅针对一种配置生成一个日志文件。
示例。
使用spring.profiles.active =“ abc”将仅生成一个文件log-abc.txt
使用spring.profiles.active =“ xyz”将仅生成一个 文件log-xyz.txt
我正在尝试使用lib Janino在spring-logback.xml中尝试“如果没有”,但是它不起作用。
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<layout class="ch.qos.logback.classic.PatternLayout">
<Pattern>%d ${APP_NAME} %-5level [%thread] %logger: %msg%n</Pattern>
</layout>
</appender>
<if condition='p("spring.profiles.active").equals("local")'>
<then>
<appender name="ROLLINGFILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>../${LOGDIR}/${APP_NAME}-log.%d{MM-dd-yyyy}.log</fileNamePattern>
<maxHistory>90</maxHistory>
</rollingPolicy>
<encoder>
<charset>utf-8</charset>
<Pattern>%d ${APP_NAME} %-5level [%thread] %logger: %msg%n</Pattern>
</encoder>
</appender>
<springProfile name="local">
<root level="debug">
<appender-ref ref="CONSOLE"/>
</root>
<logger name="co.jp.oha" additivity="false" level="debug,info,error,warn">
<appender-ref ref="ROLLINGFILE"/>
<appender-ref ref="STDOUT"/>
</logger>
</springProfile>
</then>
</if>
<if condition='p("spring.profiles.active").equals("ci")'>
<then>
<appender name="ROLLINGFILE_PROD" class="ch.qos.logback.core.rolling.RollingFileAppender">
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>../${LOGDIR}/${APP_NAME}-prod-log.%d{MM-dd-yyyy}.log</fileNamePattern>
<maxHistory>90</maxHistory>
</rollingPolicy>
<encoder>
<charset>utf-8</charset>
<Pattern>%d ${APP_NAME} ${LOG_LEVEL_PATTERN:-%5p}: %msg%n</Pattern>
</encoder>
</appender>
<springProfile name="ci">
<logger name="co.jp.oha" additivity="false" level="info">
<appender-ref ref="ROLLINGFILE_PROD"/>
</logger>
</springProfile>
</then>
</if>
上面的代码,您可以看到两个条件。我比较
p(“ spring.profiles.active”)。equals(“ myconfig”)
生成log.txt时,它不会生成任何文件。
在application.properties中设置
spring.profiles.active=local
请帮助我我在哪里错了?
谢谢!