记录一下 logback 的配置,方便以后 copy paste
1. maven 坐标
<properties>
<slf4j.version>1.7.19</slf4j.version>
<logback.version>1.1.3</logback.version>
</properties>
<!-- 日志 -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>${slf4j.version}</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>jcl-over-slf4j</artifactId>
<version>${slf4j.version}</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-core</artifactId>
<version>${logback.version}</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>${logback.version}</version>
</dependency>
然后就是在 classpath 目录下新建 logback.xml,模版如下:
2. logback.xml
<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="false" debug="false">
<property name="APP_NAME" value="tookit"/>
<property name="LOG_HOME" value="logs"/>
<contextName>${APP_NAME}</contextName>
<timestamp key="datetime" datePattern="yyyy-MM-dd HH:mm:ss" />
<!-- 控制台输出所有日志 -->
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<!-- <pattern>%-5level | %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %logger - %msg%n</pattern> -->
<!-- 此种格式会打印出比较美观的超链接日志,包含行号方便调试,不建议生产环境使用 -->
<pattern>%d{yyyy-MM-dd HH:mm:ss,SSS} %5p [%t] %replace(%caller{1}){'\t|Caller.{1}0|\r\n', ''} - %m%n</pattern>
<charset>UTF-8</charset>
</encoder>
</appender>
<!-- 打印所有非ERROR级别日志 -->
<appender name="INFO_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!--当天生成的日志文件名-->
<file>${LOG_HOME}/${APP_NAME}.log</file>
<!-- 每隔一天将昨天的日志文件转换为一个新的压缩文件,最多保存30天。 -->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${LOG_HOME}/${APP_NAME}.%d{yyyy-MM-dd}.log.gz</fileNamePattern>
<maxHistory>30</maxHistory>
</rollingPolicy>
<encoder>
<pattern>%-5level | %d{yyyy-MM-dd HH:mm:ss.SSS} - %logger - %msg%n</pattern>
<charset>UTF-8</charset>
</encoder>
<!-- 表示非ERROR级别的日志均接收 -->
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>ERROR</level>
<onMatch>DENY</onMatch>
<onMismatch>ACCEPT</onMismatch>
</filter>
</appender>
<!-- 打印所有ERROR级别日志 -->
<appender name="ERROR_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!--当天生成的日志文件名-->
<file>${LOG_HOME}/${APP_NAME}.error.log</file>
<!-- 每隔一天将昨天的日志文件转换为一个新的压缩文件,最多保存30天。 -->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${LOG_HOME}/${APP_NAME}.error.%d{yyyy-MM-dd}.log.gz</fileNamePattern>
<maxHistory>30</maxHistory>
</rollingPolicy>
<encoder>
<pattern>%-5level | %d{yyyy-MM-dd HH:mm:ss.SSS} - %logger - %msg%n</pattern>
<charset>UTF-8</charset>
</encoder>
<!-- 表示只接收ERROR级别的日志 -->
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>ERROR</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
</appender>
<!-- root的策略一般指的是打印日志的级别,打印到哪(使用何种打印器) -->
<root level="INFO">
<appender-ref ref="STDOUT"/>
<appender-ref ref="INFO_FILE"/>
<appender-ref ref="ERROR_FILE"/>
</root>
<!-- level="INFO"表示org.springframework包下的日志只打印INFO级别以上的,以此级别为准。
additivity="false" 表示不使用root的打印策略,additivity的值默认为true,即默认继承root打印策略。显然,因为没有打印器,此处Spring的日志将不会打印。
-->
<logger name="org.springframework" level="INFO" additivity="false"/>
</configuration>
3. 使用也写了吧 好 copy。。。
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
final static Logger logger = LoggerFactory.getLogger(DefaultPluginRegisterFactory.class);
鼠标掉地上了 睡觉了。。
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于