logback介紹
logback是一款開源的日志框架,內核重寫了,是基於log4j基礎進行改良的。其官網為logback.qos.ch。logback在性能上有很大提升,擁有更多特性。
logback-core:是其它兩個模塊的基礎模塊
logback-classic:log4j的改良版本,實現了Slf4j API
logback-access:集成Servle環境時就需要logback了,可以提供Http訪問的接口
日志級別
日志級別:ERROR, WARN, INFO, DEBUG or TRACE
有時候我們要獲取更多的日志信息,就可以降低日志級別,然后或是更多的日志信息,eg:目前級別是info級別的,我們可以降低日志級別為debug,然后獲取更多日志信息。
項目集成
maven加上對應的jar:
<!-- logback -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
</dependency>
在application.yml加上配置
server:
port: 8081
logging:
config: classpath:logback.xml
level:
com.muses.taoshop: debug
path: /data/logs
在資源文件夾下添加logback.xml:
<?xml version="1.0" encoding="UTF-8" ?>
<configuration debug="false" scan="true">
<!-- 日志級別 -->
<springProperty scope="context" name="LOG_ROOT_LEVEL" source="logging.level.root" defaultValue="DEBUG"/>
<!-- 標識這個"STDOUT" 將會添加到這個logger -->
<springProperty scope="context" name="STDOUT" source="log.stdout" defaultValue="STDOUT"/>
<!-- 日志格式,%d:日期;%thread:線程名;%-5level:日志級別從左顯示5個字符長度,列如:DEBUG;
%logger{36}:java類名,例如:com.muses.taoshop.MyTest,36表示字符長度;%msg:日志內容;%d:換行 -->
<property name="LOG_PATTERN"
value="%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n" />
<!-- root日志級別-->
<property name="${LOG_ROOT_LEVEL}" value="DEBUG" />
<!-- 日志跟目錄 -->
<property name="LOG_HOME" value="data/logs" />
<!-- 日志文件路徑-->
<property name="LOG_DIR" value="${LOG_HOME}/%d{yyyyMMdd}" />
<!-- 日志文件名稱 -->
<property name="LOG_PREFIX" value="portal" />
<!-- 日志文件編碼 -->
<property name="LOG_CHARSET" value="utf-8" />
<!-- 配置日志的滾動時間,保存時間為15天-->
<property name="MAX_HISTORY" value="15" />
<!-- 文件大小,默認為10MB-->
<property name="MAX_FILE_SIZE" value="10" />
<!-- 打印到控制台 -->
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<!-- 格式化日志內容-->
<encoder>
<pattern>${LOG_PATTERN}</pattern>
</encoder>
</appender>
<!-- 打印所有日志,保存到文件-->
<appender name="FILE_ALL"
class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${LOG_HOME}/all_${LOG_PREFIX}.log</file>
<!-- 設置滾動策略,當日志文件大小超過${MAX_FILE_SIZE}時,新的日志內容寫到新的日志文件-->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- 新的日志文件路徑名稱,%d:日期 %i:i是變量 -->
<fileNamePattern>${LOG_DIR}/all_${LOG_PREFIX}%d{yyyy-MM-dd}.%i.log</fileNamePattern>
<!-- 保存日志15天 -->
<maxHistory>${MAX_HISTORY}</maxHistory>
<timeBasedFileNamingAndTriggeringPolicy
class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<!-- 日志文件的最大大小 -->
<maxFileSize>${MAX_FILE_SIZE}</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
<!-- 格式日志文件內容-->
<layout class="ch.qos.logback.classic.PatternLayout">
<pattern>${LOG_PATTERN}</pattern>
</layout>
</appender>
<!-- 打印錯誤日志,保存到文件-->
<appender name="FILE_ERR"
class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${LOG_HOME}/err_${LOG_PREFIX}.log</file>
<!-- 設置滾動策略,當日志文件大小超過${MAX_FILE_SIZE}時,新的日志內容寫到新的日志文件-->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- 新的日志文件路徑名稱,%d:日期 %i:i是變量 -->
<fileNamePattern>${LOG_DIR}/err_${LOG_PREFIX}%d{yyyy-MM-dd}.%i.log</fileNamePattern>
<!-- 保存日志15天 -->
<maxHistory>${MAX_HISTORY}</maxHistory>
<timeBasedFileNamingAndTriggeringPolicy
class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<!-- 日志文件的最大大小 -->
<maxFileSize>${MAX_FILE_SIZE}</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
<!-- 格式日志文件內容-->
<layout class="ch.qos.logback.classic.PatternLayout">
<pattern>${LOG_PATTERN}</pattern>
</layout>
</appender>
<!-- rest template logger-->
<!--<logger name="org.springframework.web.client.RestTemplate" level="DEBUG" />-->
<!--<logger name="org.springframework" level="DEBUG" />-->
<!-- jdbc-->
<!--<logger name="jdbc.sqltiming" level="DEBUG" />-->
<logger name="org.mybatis" level="DEBUG" />
<!-- zookeeper-->
<logger name="org.apache.zookeeper" level="ERROR" />
<!-- dubbo -->
<logger name="com.alibaba.dubbo.monitor" level="ERROR"/>
<logger name="com.alibaba.dubbo.remoting" level="ERROR" />
<!-- 日志輸出級別 -->
<root leve="${LOG_ROOT_LEVEL}">
<appender-ref ref="STDOUT" />
<appender-ref ref="FILE_ALL" />
<appender-ref ref="FILE_ERR" />
</root>
</configuration>
附錄
參考資料