springboot的yml配置文件整合logback,按照不同环境不同配置打印

yml文件中添加配置:

##########  日志 配置 - START  ##########
logging:
config: classpath:logback-spring.xml # logback日志配置
yh:
logFileHome: # 各个环境的配置文件目录
dev: d:/logs/
test: /www/wwwroot/yhApps/logs/
pro: /www/wwwroot/yhApps/logs/
pattern: "%-12(%d{yyyy-MM-dd HH:mm:ss.SSS}) |-%-5level [%thread] %c [%L] -| %msg%n"
maxHistory: 100 # 最大保存100个(天)的历史文件

resources目录下添加文件:logback-spring.xml ,文件内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<!-- 属性描述 scan:性设置为true时,配置文件如果发生改变,将会被重新加载,默认值为true scanPeriod:设置监测配置文件是否有修改的时间间隔,如果没有给出时间单位,默认单位是毫秒。当scan为true时,此属性生效。默认的时间间隔为1分钟。
    debug:当此属性设置为true时,将打印出logback内部日志信息,实时查看logback运行状态。默认值为false。 -->
<configuration scan="true" scanPeriod="60 seconds" debug="false">
    <contextName>yh-springboot-basic</contextName>
    <!-- 文件输出格式 -->
    <!--<property name="PATTERN" value="%-12(%d{yyyy-MM-dd HH:mm:ss.SSS}) |-%-5level [%thread] %c [%L] -| %msg%n" />-->
    <springProperty scope="context" name="pattern" source="logging.yh.pattern"/>
    <!--最大历史日志文件数量-->
    <springProperty scope="context" name="maxHistory" source="logging.yh.maxHistory"/>
    <!--应用名称-->
    <springProperty scope="context" name="appName" source="my.info.appName"/>

    <!-- dev文件路径 -->
    <springProperty scope="context" name="devLogHome" source="logging.yh.logFileHome.dev"/>
    <!-- test文件路径 -->
    <springProperty scope="context" name="testLogHome" source="logging.yh.logFileHome.test"/>
    <!-- pro文件路径 -->
    <springProperty scope="context" name="proLogHome" source="logging.yh.logFileHome.pro"/>

    <!-- 开发环境 -->
    <springProfile name="dev">
        <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
            <encoder>
                <pattern>${pattern}</pattern>
            </encoder>
        </appender>

        <!-- 每天产生一个文件 -->
        <appender name="CONSOLE-FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
            <!-- 文件路径 -->
            <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
                <!-- 文件名称 -->
                <fileNamePattern>${devLogHome}/${appName}_log/debug.%d{yyyy-MM-dd}.log</fileNamePattern>
                <!-- 文件最大保存历史数量 -->
                <MaxHistory>100</MaxHistory>
            </rollingPolicy>
            <layout class="ch.qos.logback.classic.PatternLayout">
                <pattern>${pattern}</pattern>
            </layout>
        </appender>

        <logger name="com.yh" level="debug"/>
        <root level="info">
            <appender-ref ref="CONSOLE"/>
            <appender-ref ref="CONSOLE-FILE"/>
        </root>
    </springProfile>

    <!-- 测试环境 -->
    <springProfile name="test">
        <!-- 每天产生一个文件 -->
        <appender name="TEST-FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
            <!-- 文件路径 -->
            <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
                <!-- 文件名称 -->
                <fileNamePattern>${testLogHome}/${appName}_log/info.%d{yyyy-MM-dd}.log</fileNamePattern>
                <!-- 文件最大保存历史数量 -->
                <MaxHistory>100</MaxHistory>
            </rollingPolicy>
            <layout class="ch.qos.logback.classic.PatternLayout">
                <pattern>${pattern}</pattern>
            </layout>
        </appender>
        <root level="info">
            <appender-ref ref="TEST-FILE"/>
        </root>
    </springProfile>

    <!-- 生产环境 -->
    <springProfile name="pro">
        <appender name="PROD_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
            <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
                <fileNamePattern>${proLogHome}/${appName}_log/warn.%d{yyyy-MM-dd}.log</fileNamePattern>
                <MaxHistory>100</MaxHistory>
            </rollingPolicy>
            <layout class="ch.qos.logback.classic.PatternLayout">
                <pattern>${pattern}</pattern>
            </layout>
        </appender>
        <root level="warn">
            <appender-ref ref="PROD_FILE"/>
        </root>
    </springProfile>
</configuration>

 

 

上一篇:4个学生,1个暑假,百度深度学习开源平台PaddlePaddle诞生了智能桃子分拣器


下一篇:(十) 特征匹配