slf4j+logback使用

1、組件:java

Logback 分爲三個模塊:logback-core,logback-classic,logback-access
api

logback-core 是核心;app

logback-classic 改善了 log4j,且自身實現了 SLF4J API,因此即便用 Logback 你仍然能夠使用其餘的日誌實現,如原始的 Log4J,java.util.logging 等;spa

logback-access 讓你方便的訪問日誌信息,如經過 http 的方式。debug

 

2、配置信息日誌

須要的配置文件和組件包,下面三個 jar 文件和一個 xml文件都是要放在項目的 ClassPath上code

slf4j-api-1.7.12.jarorm

logback-classic-0.9.29.jarxml

logback-core-0.9.29.jarget

 pom.xml文件:

<dependency> 
    <groupId>org.slf4j</groupId> 
    <artifactId>slf4j-api</artifactId> 
    <version>1.7.12</version> 
</dependency> 
<dependency> 
    <groupId>org.slf4j</groupId> 
    <artifactId>jcl-over-slf4j</artifactId> 
    <version>1.7.12</version> 
</dependency> 
<dependency> 
    <groupId>ch.qos.logback</groupId> 
    <artifactId>logback-core</artifactId> 
    <version>1.1.3</version> 
</dependency> 
<dependency> 
    <groupId>ch.qos.logback</groupId> 
    <artifactId>logback-classic</artifactId> 
    <version>1.1.3</version> 
</dependency>


logback.xml

<?xml version="1.0" encoding="UTF-8" ?>
<configuration>
	<jmxConfigurator />
	<!-- 控制檯輸出日誌 -->
	<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
		<layout class="ch.qos.logback.classic.PatternLayout">
			<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} -
				%msg%n</pattern>
		</layout>
	</appender>
	<!-- 文件輸出日誌 (文件大小策略進行文件輸出,超過指定大小對文件備份) -->
	<appender name="FILE"
		class="ch.qos.logback.core.rolling.RollingFileAppender">
		<File>xxxx.log</File>
		<rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
			<FileNamePattern>xxxx.log.%i.bak</FileNamePattern>
			<MinIndex>1</MinIndex>
			<MaxIndex>12</MaxIndex>
		</rollingPolicy>
		<triggeringPolicy
			class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
			<MaxFileSize>100MB</MaxFileSize>
		</triggeringPolicy>
		<layout class="ch.qos.logback.classic.PatternLayout">
			<Pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} -
				%msg%n</Pattern>
		</layout>
	</appender>
	<!--這裏指定logger name 是爲jmx設置日誌級別作鋪墊 -->
	<logger name="com.xxx.xxx">
		<level value="INFO" />
		<appender-ref ref="STDOUT" />
		<appender-ref ref="FILE" />
	</logger>
</configuration>


3、示例代碼

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

class Bar {

	Logger logger = LoggerFactory.getLogger(Bar.class);

	public void doIt() {
		logger.debug("doing my job");
	}
}
相關文章
相關標籤/搜索