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"); } }