日志logback-spring.xml配置

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <!-- https://github.com/spring-projects/spring-boot/blob/v1.5.13.RELEASE/spring-boot/src/main/resources/org/springframework/boot/logging/logback/defaults.xml -->
    <include resource="org/springframework/boot/logging/logback/defaults.xml" />

     <!-- 日志文件路径的配置 -->
    <property name="APP_NAME" value="myApp" />
    <property name="LOG_PATH" value="${user.home}/${APP_NAME}/logs" />
    <!-- 这个是默认的日志类型的名称 -->
    <property name="LOG_FILE" value="${LOG_PATH}/application.log" />
    <!--CONSOLE_LOG_PATTERN的自定义配置,可以设置颜色和一些格式。如果不配置,默认黑白日志 -->
    <property name="CONSOLE_LOG_PATTERN" value="${CONSOLE_LOG_PATTERN:-%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"/>

    <!-- 每一个appender中配置一种日志格式 -->
    <appender name="APPLICATION"
        class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${LOG_FILE}</file>
        <!-- 编码用的格式 -->
        <encoder>
            <pattern>${FILE_LOG_PATTERN}</pattern>
        </encoder>
        <!-- 日志的滚动策略, 一种是按照时间的TimeBaseRollingPolicy,一种是按照索引的SizeBasedTriggeringPolicy,这里选用的是第二种方式 --> 
        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            <fileNamePattern>${LOG_FILE}.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
            <maxHistory>7</maxHistory>
            <maxFileSize>50MB</maxFileSize>
            <totalSizeCap>20GB</totalSizeCap>
        </rollingPolicy>
    </appender>

    <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>${CONSOLE_LOG_PATTERN}</pattern>
            <charset>utf8</charset>
        </encoder>
    </appender>

    <!--后台相关日志-->
    <appender name="BackStageAppender"
              class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${LOG_PATH}/backstage/backstage.log</file>
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %level %class{0}.%method %line - %msg%n</pattern>
            <charset>utf8</charset>
        </encoder>
        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            <fileNamePattern>${LOG_PATH}/backstage/backstage-%d{yyyy-MM-dd}.%i.log
            </fileNamePattern>
            <maxHistory>10</maxHistory>
            <maxFileSize>200MB</maxFileSize>
            <totalSizeCap>20GB</totalSizeCap>
        </rollingPolicy>
    </appender>

    <!--执行相关日志-->
    <appender name="ExecuteAppender"
              class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${LOG_PATH}/execute/execute.log</file>
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %level %class{0}.%method %line - %msg%n</pattern>
            <charset>utf8</charset>
        </encoder>
        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            <fileNamePattern>${LOG_PATH}/execute/execute-%d{yyyy-MM-dd}.%i.log
            </fileNamePattern>
            <maxHistory>10</maxHistory>
            <maxFileSize>200MB</maxFileSize>
            <totalSizeCap>20GB</totalSizeCap>
        </rollingPolicy>
    </appender>

  

    <logger name="backStageLogger" additivity="true">
        <level value="${log.level}"/>
        <appender-ref ref="BackStageAppender"/>
    </logger>

    <logger name="executeLogger" additivity="false">
        <level value="${log.level}"/>
        <appender-ref ref="ExecuteAppender"/>
    </logger>

   <!--root节点是必选节点,用来指定最基础的日志输出级别,只有一个level属性
        level:用来设置打印级别,大小写无关:TRACE, DEBUG, INFO, WARN, ERROR, ALL 和 OFF,
        不能设置为INHERITED或者同义词NULL。默认是DEBUG
        可以包含零个或多个元素,标识这个appender将会添加到这个logger-->
    <root level="INFO">
        <appender-ref ref="CONSOLE" />
        <appender-ref ref="APPLICATION" />
    </root>
</configuration>

rollingPolicy:

(1)TimeBaseRollingPolicy

<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
			<FileNamePattern>${LOG_HOME}/back.%d{yyyy-MM-dd_HH}.log</FileNamePattern>
			<!-- 日志文件保留天数 -->
			<MaxHistory>30</MaxHistory>
</rollingPolicy>

    设置日志文件保留天数为30天,当第31天生成日志的时候,会把第一天的自动删掉。   

(2)SizeBasedTriggeringPolicy

 <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            <fileNamePattern>${LOG_FILE}.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
            <maxHistory>7</maxHistory>
            <maxFileSize>50MB</maxFileSize>
            <totalSizeCap>20GB</totalSizeCap>
 </rollingPolicy>

         maxHistory设置最大的保存天数。maxFileSize设置了每个文件的最大容量。totalSizeCap限制总的日志文件大小。所以当我们想按照日期和大小来管理日志时,可以用此方式,每天按照大小输出n个日志文件。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值