分类 标签 存档 订阅 搜索

logback 的配置

1255 浏览0 评论

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

鼠标掉地上了 睡觉了。。

评论  
留下你的脚步
推荐阅读