logback 的配置

本贴最后更新于 2410 天前,其中的信息可能已经水流花落

记录一下 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);

鼠标掉地上了 睡觉了。。

  • B3log

    B3log 是一个开源组织,名字来源于“Bulletin Board Blog”缩写,目标是将独立博客与论坛结合,形成一种新的网络社区体验,详细请看 B3log 构思。目前 B3log 已经开源了多款产品:SymSoloVditor思源笔记

    1063 引用 • 3453 回帖 • 201 关注
  • Java

    Java 是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由 Sun Microsystems 公司于 1995 年 5 月推出的。Java 技术具有卓越的通用性、高效性、平台移植性和安全性。

    3186 引用 • 8212 回帖
  • 日志
    44 引用 • 105 回帖
  • logback
    4 引用 • 1 回帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...