换机器就要找以前的日志配置,烦死了,于是保存一下常用的简单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
}
}
}