• 3.添加日志logback(多环境)


    四.添加日志logback(多环境)

    4.1拆分application.properties

    拆分为开发环境application-dev.properties和正式环境application-pro.properties

    根据不同环境的数据库登登不同配置,application.properties保留多环境相同的配置

    application.properties

    #切换环境
    spring.profiles.active=dev 
    logging.config=classpath:logback-${spring.profiles.active}.xml
    

    4.2拆分logback.xml

    将logback.xml文件拆分为logback-dev.xmllogback-pro.xml两个文件

    logback-dev.xml (开发环境只需要打印控制台)

    <?xml version="1.0" encoding="utf-8"?>
    <configuration scan="true" scanPeriod="60 seconds" debug="false">
        <springProperty scope="context" name="common.logDir" source="common.logDir"/>
        <!-- 彩色日志 -->
        <!-- 彩色日志依赖的渲染类 -->
        <conversionRule conversionWord="clr" converterClass="org.springframework.boot.logging.logback.ColorConverter" />
        <conversionRule conversionWord="wex" converterClass="org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter" />
        <conversionRule conversionWord="wEx" converterClass="org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter" />
        <!-- 彩色日志格式 -->
        <property name="CONSOLE_LOG_PATTERN" value="${CONSOLE_LOG_PATTERN:-%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"/>
    
    
        <appender name="CONSOLE-LOG" class="ch.qos.logback.core.ConsoleAppender">
            <layout class="ch.qos.logback.classic.PatternLayout">
                <pattern>${CONSOLE_LOG_PATTERN}</pattern>
            </layout>
        </appender>
    
        <root level="info">
            <appender-ref ref="CONSOLE-LOG"/>
    
        </root>
    
    </configuration>
    

    logback-pro.xml

    <?xml version="1.0" encoding="utf-8"?>
    <configuration scan="true" scanPeriod="60 seconds" debug="false">
        <springProperty scope="context" name="common.logDir" source="common.logDir"/>
        <!-- 彩色日志 -->
        <!-- 彩色日志依赖的渲染类 -->
        <conversionRule conversionWord="clr" converterClass="org.springframework.boot.logging.logback.ColorConverter" />
        <conversionRule conversionWord="wex" converterClass="org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter" />
        <conversionRule conversionWord="wEx" converterClass="org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter" />
        <!-- 彩色日志格式 -->
        <property name="CONSOLE_LOG_PATTERN" value="${CONSOLE_LOG_PATTERN:-%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"/>
    
    
        <appender name="CONSOLE-LOG" class="ch.qos.logback.core.ConsoleAppender">
            <layout class="ch.qos.logback.classic.PatternLayout">
                <pattern>${CONSOLE_LOG_PATTERN}</pattern>
            </layout>
        </appender>
    
    
        <!--获取比info级别高(包括info级别)但除error级别的日志-->
        <appender name="INFO-LOG" class="ch.qos.logback.core.rolling.RollingFileAppender">
            <filter class="ch.qos.logback.classic.filter.LevelFilter">
                <level>ERROR</level>
                <onMatch>DENY</onMatch>
                <onMismatch>ACCEPT</onMismatch>
            </filter>
            <encoder>
                <pattern>[%d{yyyy-MM-dd' 'HH:mm:ss.sss}] [%C] [%t] [%L] [%-5p] %m%n</pattern>
            </encoder>
            <!--滚动策略-->
            <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
                <!--路径-->
                <fileNamePattern>log/logback.%d{yyyy-MM-dd}.log</fileNamePattern>
                <!--历史数据记录保留的天数-->
                <maxHistory>30</maxHistory>
            </rollingPolicy>
        </appender>
    
        <appender name="ERROR-LOG" class="ch.qos.logback.core.rolling.RollingFileAppender">
            <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
                <level>ERROR</level>
            </filter>
            <encoder>
                <pattern>[%d{yyyy-MM-dd' 'HH:mm:ss.sss}] [%C] [%t] [%L] [%-5p] %m%n</pattern>
            </encoder>
            <!--滚动策略-->
            <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
                <!--路径-->
                <fileNamePattern>log/logback_error.%d{yyyy-MM-dd}.log</fileNamePattern>
                <maxHistory>30</maxHistory>
            </rollingPolicy>
        </appender>
        <root level="info">
            <appender-ref ref="CONSOLE-LOG"/>
            <appender-ref ref="INFO-LOG"/>
            <appender-ref ref="ERROR-LOG"/>
        </root>
    
        <!-- 异步输出 -->
        <appender name="ASYNC-INFO" class="ch.qos.logback.classic.AsyncAppender">
            <!-- 不丢失日志.默认的,如果队列的80%已满,则会丢弃TRACT、DEBUG、INFO级别的日志 -->
            <discardingThreshold>0</discardingThreshold>
            <!-- 更改默认的队列的深度,该值会影响性能.默认值为256 -->
            <queueSize>256</queueSize>
            <!-- 添加附加的appender,最多只能添加一个 -->
            <appender-ref ref="INFO-LOG"/>
        </appender>
        <appender name="ASYNC-ERROR" class="ch.qos.logback.classic.AsyncAppender">
            <!-- 不丢失日志.默认的,如果队列的80%已满,则会丢弃TRACT、DEBUG、INFO级别的日志 -->
            <discardingThreshold>0</discardingThreshold>
            <!-- 更改默认的队列的深度,该值会影响性能.默认值为256 -->
            <queueSize>256</queueSize>
            <!-- 添加附加的appender,最多只能添加一个 -->
            <appender-ref ref="ERROR-LOG"/>
        </appender>
    </configuration>
    

    启动时指定:

    java -jar xxx.jar --spring.profiles.active=dev

    也可以在application.properties指定:

    spring.profiles.active=dev

  • 相关阅读:
    eclipse maven构建的java web工程项目 在修改了工程项目名时,tomcat启动异常java.lang.IllegalArgumentException: Can't convert argument:null
    maven 编译打包时,明明类文件没有问题,却提示错误:未结束的字符串字面值,maven-compiler-plugin:2.3.2
    maven 结合mybaits整合框架,打包时mapper.xml文件,mapper目录打不进war包去问题
    jsp到java后台中文乱码问题
    JVM学习笔记(四):类加载机制
    JVM学习笔记(三):类文件结构
    JVM学习笔记(二):垃圾收集
    内存映像分析工具Eclipse Memory Analyzer
    JVM学习笔记(一):Java内存区域
    Java变量初始化之后的默认值问题
  • 原文地址:https://www.cnblogs.com/proper128/p/12674798.html
Copyright © 2020-2023  润新知