logback 配置多环境日志

本文将介绍怎样配置 logback 在不同的环境下打印不同的日志。

下面配置文件将分别配置 logback 在 dev 环境中同时将日志输出到控制台和日志文件,而 test、prod 环境则仅仅输出到日志文件。

配置内容:

<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod="10 seconds">
    <!-- 定义日志文件路径变量 -->
    <substitutionProperty name="log.base" value="../logs" />
    <!-- 最大文件尺寸500M -->
    <property name="maxFileSize" value="500MB"/>
    <!-- 总日志大小10G -->
    <property name="totalLogSize" value="10GB"/>

    <appender name="logFile" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${log.base}/log.log</file>
        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            <maxHistory>90</maxHistory>
            <maxFileSize>${maxFileSize}</maxFileSize>
            <totalSizeCap>${totalLogSize}</totalSizeCap>
            <cleanHistoryOnStart>true</cleanHistoryOnStart>
            <FileNamePattern>${log.base}/log-%d{yyyy-MM-dd}.%i.log.zip</FileNamePattern>
        </rollingPolicy>
        <encoder charset="utf-8">
            <pattern>%date [%thread] %-5level %logger{36} - %.-1024msg%n</pattern>
        </encoder>
    </appender>

    <!-- 输出到控制台 -->
    <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
        <encoder charset="utf-8">
            <pattern>%date [%thread] %-5level %logger{36} - %msg%n</pattern>
        </encoder>
    </appender>

    <!-- 开发环境同时输出到控制台和日志文件 -->
    <springProfile name="dev">
        <!-- 日志级别为 INFO -->
        <root level="info">
            <appender-ref ref="console" />
            <appender-ref ref="logFile" />
        </root>
    </springProfile>

    <!-- 测试和生成环境只输出到日志文件,不输出到控制台 -->
    <springProfile name="test,prod">
        <!-- 日志级别为 WARN -->
        <root level="warn">
            <appender-ref ref="logFile" />
        </root>
    </springProfile>

</configuration>

注意:文件名称必须为 logback-spring.xml 才可以。

我们常常听人说,人们因工作过度而垮下来,但是实际上十有八九是因为饱受担忧或焦虑的折磨。 —— 卢伯克.J.
0 不喜欢
说说我的看法 -
全部评论(
没有评论
关于
本网站专注于 Java、数据库(MySQL、Oracle)、Linux、软件架构及大数据等多领域技术知识分享。涵盖丰富的原创与精选技术文章,助力技术传播与交流。无论是技术新手渴望入门,还是资深开发者寻求进阶,这里都能为您提供深度见解与实用经验,让复杂编码变得轻松易懂,携手共赴技术提升新高度。如有侵权,请来信告知:hxstrive@outlook.com
公众号