女朋友问的那些问题—log.info在测试环境正常打印,上了生产就废?


theme: smartblue

小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。

【需求】打印日志内容到控制台

女朋友今天接到的需求是测试一个方法的执行时间,然后就在这个方法中第一行和最后一行中输出了一下当前时间的long值,以此来判断出方法的执行时间。

但,终究还是有问题,测试上打印的日志好好的,结果一上生产环境,就完蛋了,根本就在主日志文件中没有找到相关的日志,悲哀。

【问题】日志组件在测试环境和生产环境打印不一致

这里的问题就是生产环境和测试环境的日志打印不一致问题,其实也是很好定位的,只需要查看log日志用的是哪个组件,随后判断出log组件的配置文件,查看生产和测试环境下打印规则是否一致。

这个问题可能也不是我说的这种情况,但是恰巧这个解决方案正好解决她现在的问题,虽然有点无脑。

【结果】

logback组件的使用,在于logger.xml中的配置规则,一般都会根据不同的环境,分配不同的打印规则。

我大概列一下logback的相关配置吧,这是我项目中常用的一些规则。

```

<contextName>logback</contextName>
<springProperty scope="context" name="logPath" source="logging.path"/>
<property name="log.path" value="${logPath}" />

<!--输出到控制台-->
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
    <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
        <level>info</level>
    </filter>
    <encoder>
        <Pattern>${CONSOLE_LOG_PATTERN}</Pattern>
        <charset>UTF-8</charset>
    </encoder>
</appender>

<!-- 时间滚动输出 level为 INFO 日志 -->
<appender name="INFO_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
    <file>${log.path}/log_info.log</file>
    <encoder>
        <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
        <charset>UTF-8</charset>
    </encoder>
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
        <fileNamePattern>${log.path}/info/log-info-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
        <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
            <maxFileSize>100MB</maxFileSize>
        </timeBasedFileNamingAndTriggeringPolicy>
        <maxHistory>30</maxHistory>
    </rollingPolicy>
    <filter class="ch.qos.logback.classic.filter.LevelFilter">
        <level>info</level>
        <onMatch>ACCEPT</onMatch>
        <onMismatch>DENY</onMismatch>
    </filter>
</appender>

<springProfile name="test">
    <logger name="com.wingtra.ymt" level="debug"/>
    <root level="debug">
        <appender-ref ref="CONSOLE"/>
    </root>
</springProfile>

<springProfile name="dev">
    <logger name="com.wingtra.ymt" level="debug"/>
    <root level="debug">
        <appender-ref ref="CONSOLE"/>
        <appender-ref ref="INFO_FILE"/>
    </root>
</springProfile>

<springProfile name="pro">
    <root level="info">
        <appender-ref ref="INFO_FILE"/>
    </root>
</springProfile>

```

这个是logback.xml的配置,在这里面使用springProfile来指定环境参数即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Ijiran

一杯咖啡太贵,一块糖就可以

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值