All Downloads are FREE. Search and download functionalities are using the official Maven repository.

fun.fengwk.convention4j.springboot.starter.logback.file-appender.xml Maven / Gradle / Ivy

There is a newer version: 1.1.17
Show newest version
<?xml version="1.0" encoding="UTF-8"?>

<!--
File appender logback configuration provided for import, equivalent to the programmatic
initialization performed by Boot
-->

<included>
    <springProperty scope="context" name="APP_NAME" source="spring.application.name" defaultValue="unknown"/>
    <springProperty scope="context" name="LOG_PATH" source="logging.path" defaultValue="./logs"/>
    <springProperty scope="context" name="MAX_HISTORY" source="logging.file.max-history" defaultValue="14"/>
    <springProperty scope="context" name="MAX_SIZE" source="logging.file.max-size" defaultValue="128MB"/>
    <springProperty scope="context" name="TOTAL_SIZE_CAP" source="logging.file.total-size-cap" defaultValue="8GB"/>
    <springProperty scope="context" name="DISCARDING_THRESHOLD" source="logging.async.discarding-threshold" defaultValue="0"/>
    <springProperty scope="context" name="QUEUE_SIZE" source="logging.async.queue-size" defaultValue="4096"/>

    <!-- 输出所有内容 -->
    <appender name="ALL" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <!-- 日志文件保存路径 -->
        <file>${LOG_PATH}/${APP_NAME}-all.log</file>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!-- 日志文件压缩后的名称 -->
            <FileNamePattern>${LOG_PATH}/${APP_NAME}-all-%d{yyyy-MM-dd}.%i.gz</FileNamePattern>
            <!-- 当文件大小达到maxFileSize,默认128MB时,将发生滚动 -->
            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                <maxFileSize>${MAX_SIZE}</maxFileSize>
            </timeBasedFileNamingAndTriggeringPolicy>
            <!-- 日志最多保留时间,默认2周 -->
            <maxHistory>${MAX_HISTORY}</maxHistory>
            <!-- 启动时尝试清理超过maxHistory的日志 -->
            <cleanHistoryOnStart>true</cleanHistoryOnStart>
            <!-- 日志最大保存大小,默认8G -->
            <totalSizeCap>${TOTAL_SIZE_CAP}</totalSizeCap>
        </rollingPolicy>
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <!-- 日志文件输出格式,见defaults.xml -->
            <pattern>${FILE_LOG_PATTERN}</pattern>
            <charset>UTF-8</charset>
        </encoder>
    </appender>

    <!-- 输出错误内容 -->
<!--    <appender name="ERROR" class="ch.qos.logback.core.rolling.RollingFileAppender">-->
<!--        &lt;!&ndash; 日志文件保存路径 &ndash;&gt;-->
<!--        <file>${LOG_PATH}/${APP_NAME}-error.log</file>-->
<!--        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">-->
<!--            &lt;!&ndash; 日志文件压缩后的名称 &ndash;&gt;-->
<!--            <FileNamePattern>${LOG_PATH}/${APP_NAME}-error-%d{yyyy-MM-dd}.%i.gz</FileNamePattern>-->
<!--            &lt;!&ndash; 当文件大小达到maxFileSize,默认128MB时,将发生滚动 &ndash;&gt;-->
<!--            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">-->
<!--                <maxFileSize>${MAX_SIZE}</maxFileSize>-->
<!--            </timeBasedFileNamingAndTriggeringPolicy>-->
<!--            &lt;!&ndash; 日志最多保留时间,默认2周 &ndash;&gt;-->
<!--            <maxHistory>${MAX_HISTORY}</maxHistory>-->
<!--            &lt;!&ndash; 启动时尝试清理超过maxHistory的日志 &ndash;&gt;-->
<!--            <cleanHistoryOnStart>true</cleanHistoryOnStart>-->
<!--            &lt;!&ndash; 日志最大保存大小,默认8G &ndash;&gt;-->
<!--            <totalSizeCap>${TOTAL_SIZE_CAP}</totalSizeCap>-->
<!--        </rollingPolicy>-->
<!--        &lt;!&ndash; 当日志级别大于等于ERROR才打印 &ndash;&gt;-->
<!--        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">-->
<!--            <level>ERROR</level>-->
<!--        </filter>-->
<!--        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">-->
<!--            &lt;!&ndash; 日志文件输出格式,见defaults.xml &ndash;&gt;-->
<!--            <pattern>${FILE_LOG_PATTERN}</pattern>-->
<!--            <charset>UTF-8</charset>-->
<!--        </encoder>-->
<!--    </appender>-->

    <!-- 追踪控制台日志 -->
    <appender name="TRACE_CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>${TRACE_CONSOLE_LOG_PATTERN}</pattern>
            <charset>UTF-8</charset>
        </encoder>
    </appender>

    <!-- 追踪文件日志 -->
    <appender name="TRACE_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <!-- 日志文件保存路径 -->
        <file>${LOG_PATH}/${APP_NAME}-trace.log</file>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!-- 日志文件压缩后的名称 -->
            <FileNamePattern>${LOG_PATH}/${APP_NAME}-trace-%d{yyyy-MM-dd}.%i.gz</FileNamePattern>
            <!-- 当文件大小达到maxFileSize,默认128MB时,将发生滚动 -->
            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                <maxFileSize>${MAX_SIZE}</maxFileSize>
            </timeBasedFileNamingAndTriggeringPolicy>
            <!-- 日志最多保留时间,默认2周 -->
            <maxHistory>${MAX_HISTORY}</maxHistory>
            <!-- 启动时尝试清理超过maxHistory的日志 -->
            <cleanHistoryOnStart>true</cleanHistoryOnStart>
            <!-- 日志最大保存大小,默认8G -->
            <totalSizeCap>${TOTAL_SIZE_CAP}</totalSizeCap>
        </rollingPolicy>
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <!-- 日志文件输出格式,见defaults.xml -->
            <pattern>${TRACE_FILE_LOG_PATTERN}</pattern>
            <charset>UTF-8</charset>
        </encoder>
    </appender>

    <!--异步输出所有内容-->
    <appender name="ASYNC_ALL" class="ch.qos.logback.classic.AsyncAppender">
        <!--
            discardingThreshold是一个数量,默认是queueSize的1/5,当队列中可用的元素(queueSize - 使用的元素数量)少于这个数量时,
            将丢弃INFO及以下级别的日志,建议设置为0,等到队列耗尽时再进行丢弃。
        -->
        <discardingThreshold>${DISCARDING_THRESHOLD}</discardingThreshold>
        <!-- 异步队列最大容量 -->
        <queueSize>${QUEUE_SIZE}</queueSize>
        <appender-ref ref ="ALL"/>
    </appender>

    <!-- 异步输出错误内容 -->
<!--    <appender name="ASYNC_ERROR" class="ch.qos.logback.classic.AsyncAppender">-->
<!--        &lt;!&ndash;-->
<!--            discardingThreshold是一个数量,默认是queueSize的1/5,当队列中可用的元素(queueSize - 使用的元素数量)少于这个数量时,-->
<!--            将丢弃INFO及以下级别的日志,建议设置为0,等到队列耗尽时再进行丢弃。-->
<!--        &ndash;&gt;-->
<!--        <discardingThreshold>${DISCARDING_THRESHOLD}</discardingThreshold>-->
<!--        &lt;!&ndash; 异步队列最大容量 &ndash;&gt;-->
<!--        <queueSize>${QUEUE_SIZE}</queueSize>-->
<!--        <appender-ref ref="ERROR"/>-->
<!--    </appender>-->

    <!--异步输出追踪内容-->
    <appender name="ASYNC_TRACE_FILE" class="ch.qos.logback.classic.AsyncAppender">
        <!--
            discardingThreshold是一个数量,默认是queueSize的1/5,当队列中可用的元素(queueSize - 使用的元素数量)少于这个数量时,
            将丢弃INFO及以下级别的日志,建议设置为0,等到队列耗尽时再进行丢弃。
        -->
        <discardingThreshold>${DISCARDING_THRESHOLD}</discardingThreshold>
        <!-- 异步队列最大容量 -->
        <queueSize>${QUEUE_SIZE}</queueSize>
        <appender-ref ref ="TRACE_FILE"/>
    </appender>
</included>




© 2015 - 2025 Weber Informatics LLC | Privacy Policy