为什么春季积压中的Janino无法正常工作

时间:2018-10-04 07:26:07

标签: java spring-logback

目前,我正在尝试使我的网络应用仅针对一种配置生成一个日志文件。

  

示例。

     

使用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

请帮助我我在哪里错了?

谢谢!

0 个答案:

没有答案