SpringBoot使用logback

        可在配置文件里配置logback的配置文件的位置:

logging:
  #./可忽略
  config: config/logback-spring.xml
<configuration>
    <include resource="org/springframework/boot/logging/logback/defaults.xml"/>

    <!-- 定义参数,后面可以通过${APP_NAME}使用 -->
    <property name="APP_NAME" value="sample"/>
    <!-- ../logs日志文件会生成在项目的外面的一个文件夹下 -->
    <!-- ./logs日志文件会生成在项目中的logs文件夹一个文件夹 -->
    <property name="LOG_PATH" value="./logs"/>
    <property name="LOG_FILE" value="${LOG_PATH}/spring.log"/>
    <property name="COLA_LOG_FILE" value="${LOG_PATH}/cola.log"/>
    <property name="LOG_PATTERN" value="%-4relative [%thread] %-5level %logger{35}[%line] - %msg%n"/>

    <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <!-- 定义日志输出的路径-->
        <file>${LOG_FILE}</file>
        <encoder>
            <pattern>${LOG_PATTERN}</pattern>
        </encoder>
        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            <!-- 当前运行的日志文件名从${LOG_FILE}读取,日志文件名为 application.log -->
            <!-- 第二天运行就会把昨天得日志文件名称,修改成 application.log.yyyy-MM-dd.log -->
            <fileNamePattern>${LOG_FILE}.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
            <maxHistory>7</maxHistory>
            <maxFileSize>50MB</maxFileSize>
            <!-- 达到这个大小后,旧的文件日志将会被异步删除-->
            <totalSizeCap>10GB</totalSizeCap>
        </rollingPolicy>
    </appender>

    <appender name="COLA_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <!-- 定义日志输出的路径-->
        <file>${COLA_LOG_FILE}</file>
        <encoder>
            <pattern>${LOG_PATTERN}</pattern>
        </encoder>
        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            <!-- 当前运行的日志文件名从${LOG_FILE}读取,日志文件名为 application.log -->
            <!-- 第二天运行就会把昨天得日志文件名称,修改成 application.log.yyyy-MM-dd.log -->
            <fileNamePattern>${COLA_LOG_FILE}.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
            <maxHistory>7</maxHistory>
            <maxFileSize>50MB</maxFileSize>
            <!-- 达到这个大小后,旧的文件日志将会被异步删除-->
            <totalSizeCap>10GB</totalSizeCap>
        </rollingPolicy>
    </appender>

    <!-- 文件输出到控制台 -->
    <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>${LOG_PATTERN}</pattern>
            <charset>utf8</charset>
        </encoder>
    </appender>

    <!--rootLogger是默认的logger-->
    <root level="INFO">
        <!--定义了两个appender,日志会通过往这两个appender里面写-->
        <appender-ref ref="CONSOLE"/>
        <appender-ref ref="FILE"/>
    </root>

    <!--应用日志-->
    <!--这个logger没有指定appender,它会继承root节点中定义的那些appender-->
    <!--additivity表示要不要使用rootLogger配置的appender进行输出-->
    <springProfile name="dev"><!-- dev分支生效-->
        <logger name="com.alibaba.cola.sample.controller" level="DEBUG" additivity="false">
            <appender-ref ref="COLA_FILE"/>
            <appender-ref ref="CONSOLE"/>
        </logger>
    </springProfile>


    <logger name="com.alibaba.sample" level="DEBUG"/>
    <logger name="com.alibaba.cola.file" level="DEBUG"/>
    <logger name="com.alibaba.cola.report" level="DEBUG"/>
    <logger name="com.alibaba.cola.dictionary" level="DEBUG"/>
    <logger name="com.alibaba.cola.logging" level="DEBUG"/>
    <logger name="com.alibaba.cola.systemlog" level="DEBUG"/>
    <logger name="com.alibaba.cola.property" level="DEBUG"/>

    <!--数据库日志-->
    <!--由于这个logger自动继承了root的appender,root中已经有stdout的appender了,自己这边又引入了stdout的appender-->
    <!--如果没有设置 additivity="false" ,就会导致一条日志在控制台输出两次的情况-->
    <!--additivity表示要不要使用rootLogger配置的appender进行输出-->
    <logger name="com.apache.ibatis" level="TRACE" additivity="false">
        <appender-ref ref="CONSOLE"/>
    </logger>
</configuration>

posted @ 2022-07-17 12:12  小大宇  阅读(8)  评论(0编辑  收藏  举报