springboot日志管理集成Apollo踩过的坑

springboot日志管理 及 集成Apollo踩过的坑

背景

今天计划给项目做Apollo集成,在这就不详细阐述Apollo是做什么的,有兴趣的道友可以百度了解一下。
过程中遇到一个问题:我集成Apollo后项目启动没有任何的日志输出,而且项目没有任何的报错。让我很蒙圈,于是乎有了这篇小分享。直接上干货~

springboot日志集成
<?xml version="1.0" encoding="UTF-8"?>
<configuration>

    <!-- 彩色日志 -->
    <!-- 彩色日志依赖的渲染类 -->
    <conversionRule conversionWord="clr" converterClass="org.springframework.boot.logging.logback.ColorConverter" />
    <conversionRule conversionWord="wex" converterClass="org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter" />
    <!-- 彩色日志格式 -->
    <property name="console_log_pattern" value="%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(%5p) %clr(${PID:- }) [%t]{magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n%wex"/>
    <property name="file_log_pattern" value="%d{yyyy-MM-dd HH:mm:ss.SSS} %5p ${PID:- } --- [%t] %-40.40logger{39} : %m%n%wex"/>

    <property resource="application.yml" />
    <springProfile scope="context" name="appName" source="system.appName" />
    <springProfile scope="context" name="loggingRoot" source="system.loggingRoot"/>

    <!--日志输出 固定到C盘或则根据项目不熟路径输出 可自由调配-->
    <!--<property name="logPath" value="${loggingRoot}/${appName}" />-->
    <property name="logPath" value="C://Project Logs/${appName}" />

    <!--日志文件最大容量-->
    <property name="logFileMaxSize" value="50MB" />
    <!--日志文件最大保留天数-->
    <property name="logFileMaxHistory" value="30" />

    <!--多环境的日志输出-->
    <!--根据不同环境(prod:生产环境,test:测试环境,dev:开发环境)来定义不同的日志输出,-->
    <!--在 logback-spring.xml中使用 springProfile 节点来定义,方法如下:-->
    <springProfile name="dev,test,prod,default">
        <!--开发环境下不将日志记录进文件-->
        <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
            <!--encoder 默认配置为PatternLayoutEncoder-->
            <encoder>
                <pattern>${console_log_pattern}</pattern>
                <charset>utf-8</charset>
            </encoder>
        </appender>

        <!--WARN 级别的日志-->
        <appender name="warn" class="ch.qos.logback.core.rolling.RollingFileAppender">
            <filter class="ch.qos.logback.classic.filter.LevelFilter">
                <level>WARN</level>
                <onMatch>ACCEPT</onMatch>
                <onMismatch>DENY</onMismatch>
            </filter>
            <encoder>
                <pattern>${file_log_pattern}</pattern>
                <charset>UTF-8</charset>
            </encoder>
            <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
                <fileNamePattern>${logPath}/warn/%d{yyyy-MM-dd}.log</fileNamePattern>
                <MaxHistory>${logFileMaxHistory}</MaxHistory>
            </rollingPolicy>
            <!--日志文件最大的大小-->
            <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
                <MaxFileSize>${logFileMaxSize}</MaxFileSize>
            </triggeringPolicy>
        </appender>

        <!--ERROR 级别的日志-->
        <appender name="error" class="ch.qos.logback.core.rolling.RollingFileAppender">
            <filter class="ch.qos.logback.classic.filter.LevelFilter">
                <level>ERROR</level>
                <onMatch>ACCEPT</onMatch>
                <onMismatch>DENY</onMismatch>
            </filter>
            <encoder>
                <pattern>${file_log_pattern}</pattern>
                <charset>UTF-8</charset>
            </encoder>
            <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
                <fileNamePattern>${logPath}/error/%d{yyyy-MM-dd}.log</fileNamePattern>
                <MaxHistory>${logFileMaxHistory}</MaxHistory>
            </rollingPolicy>
            <!--日志文件最大的大小-->
            <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
                <MaxFileSize>${logFileMaxSize}</MaxFileSize>
            </triggeringPolicy>
        </appender>
		<!-- 需要修改包名 -->
        <logger name="com.XX" level="error" additivity="false">
            <appender-ref ref="STDOUT"/>
            <appender-ref ref="warn"/>
            <appender-ref ref="error"/>
        </logger>

        <!-- 日志输出级别 -->
        <root level="info">
            <appender-ref ref="STDOUT"/>
            <appender-ref ref="warn"/>
            <appender-ref ref="error"/>
        </root>
    </springProfile>
</configuration>

当然这样是可以在集成Apollo后日志输出的文件,开始集成的时候是这样的:
在这里插入图片描述
让我百思不得其解,找了好一会儿解决了问题:

解决方案

在这里插入图片描述
切记加入default,默认springProfile,这样就可以顺利的日志输出~
嗷呜,打完收工~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值