logback+xml/groovy简单实用配置(附带颜色配置类)

换机器就要找以前的日志配置,烦死了,于是保存一下常用的简单logback配置,xml和groovy二选一,放到resources文件夹下即可生效

需要引的包
//常用的slf4j和logback依赖
compile 'org.slf4j:slf4j-api:1.7.25'
compile 'ch.qos.logback:logback-classic:1.2.3'
logback.groovy
import com.nullpo.LogbackColorful

//LogbackColorful为自定义
conversionRule('color', LogbackColorful)

//控制台输出
appender('console', ConsoleAppender) {
    encoder(PatternLayoutEncoder) {
        pattern = '%d{yyyy-MM-dd HH:mm:ss.SSS} %magenta([%thread]) %color(%-5level) %cyan(%logger{15}) - %msg%n'
    }
}

//文件输出
appender('file', RollingFileAppender) {
    file = 'logs/process.log'
    rollingPolicy(TimeBasedRollingPolicy) {
        fileNamePattern = 'logs/process.%d{yyyy-MM-dd}.log'
        maxHistory = 10000
        totalSizeCap = '2GB'
    }
    encoder(PatternLayoutEncoder) {
        pattern = '%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n'
    }
}

//日志级别
root(INFO, ['console', 'file'])
logback.xml
<?xml version="1.0" encoding="UTF-8" ?>

<configuration scan="false" debug="false">
    <!-- 日志文件目录路径 -->
    <property name="LOG_PATH" value="logs"/>
    <!-- 自定义颜色配置类 -->
    <conversionRule conversionWord="color" converterClass="com.nullpo.LogbackColorful"/>
    
    <!-- 控制台输出 -->
    <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <charset>utf-8</charset>
            <pattern>
                %d{yyyy-MM-dd HH:mm:ss.SSS} %magenta([%thread]) %color(%-5level) %cyan(%logger{15}) - %msg%n
            </pattern>
        </encoder>
    </appender>

    <!-- 文件输出 -->
    <appender name="file" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <File>${LOG_PATH}/process.log</File>
        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            <fileNamePattern>${LOG_PATH}/process.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
            <maxHistory>10000</maxHistory>
            <maxFileSize>1GB</maxFileSize>
        </rollingPolicy>
        <encoder>
            <charset>utf-8</charset>
            <pattern>
                %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n
            </pattern>
        </encoder>
    </appender>

    <!-- 日志级别 -->
    <root>
        <level value="info"/>
        <appender-ref ref="file"/>
        <appender-ref ref="console"/>
    </root>
</configuration>
颜色控制类(以下使用groovy代码,java代码差不多,多几个分号)
package com.nullpo

import ch.qos.logback.classic.Level
import ch.qos.logback.classic.spi.ILoggingEvent
import ch.qos.logback.core.pattern.color.ANSIConstants
import ch.qos.logback.core.pattern.color.ForegroundCompositeConverterBase

/**
 * created with IntelliJ IDEA 2019.3
 * author: nullpo
 * date: 2020/11/24 13:55
 * version: 1.0
 * description: to do
 */
class LogbackColorful extends ForegroundCompositeConverterBase<ILoggingEvent> {
    @Override
    protected String getForegroundColorCode(ILoggingEvent event) {
        switch (event.level.toInt()) {
            //错误:红色
            case Level.ERROR_INT:
                return ANSIConstants.RED_FG
            //警告:黄色
            case Level.WARN_INT:
                return ANSIConstants.YELLOW_FG
            //信息:蓝色
            case Level.INFO_INT:
                return ANSIConstants.BLUE_FG
            //调试:绿色
            case Level.DEBUG_INT:
                return ANSIConstants.GREEN_FG
            //其他:白色
            default:
                return ANSIConstants.DEFAULT_FG
        }
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值