logback日誌
一、什麽是日誌框架?
是一套能夠實現日誌輸出的工具包
能夠描述系統運行狀態的所有時間都可以算作日誌
用戶下線,接口超時,數據崩潰
二、日誌框架的能力
1、定制輸出目標(文件,回滾策略,數據庫,網絡的第三方)
2、定制輸出格式
3、攜帶的上下文信息(時間戳,類路徑,調用線程,堆棧)
4、運行時選擇性輸出
5、靈活的配置
6、優異的性能
三、常見的日誌框架
1、jdk 自帶的 JUL
2、apache 自帶的 JCL
3、Log4j
4、Log4j2
5、Logback
6、SLF4j
7、jboss-logging
日誌門面:JCL、SLF4j、jboss-logging(不是服務於大眾)
日誌實現:Log4j、Log4j2(apache生產,太先進了,復雜性上過渡設計)、Logback、JUL(實現簡陋)
四、如何使用
private final Logger logger = LoggerFactory.getLogger(LoggerTest.class);
logger.debug(“debug...”);
@Slf4j
Lombok
log.info(“name: “+ name +”, password:” + password);
log.info(“name: {}, password:{}”, name, password);
1、
Logging:
Pattern:
Console: “%d - %msg%n”
File: /var/log/tomcat/a.log
Level:
Com.imooc.LoggerTest: debug
2、Logback-spring.xml配置
<?xml version="1.0" encoding="UTF-8" ?>
<configuration>
<appender name="consoleLog" class="ch.qos.logback.core.ConsoleAppender">
<layout class="ch.qos.logback.classic.PatternLayout">
<pattern>
%d - %msg%n
</pattern>
</layout>
</appender>
<appender name="fileInfoLog" class="ch.qos.logback.core.rolling.RollingFileAppender">
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>ERROR</level>
<onMatch>DENY</onMatch>
<onMismatch>ACCEPT</onMismatch>
</filter>
<encoder>
<pattern>
%msg%n
</pattern>
</encoder>
<!--滾動策略-->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!--路徑-->
<fileNamePattern>/var/log/tomcat/sell/info.%d.log</fileNamePattern>
</rollingPolicy>
</appender>
<appender name="fileErrorLog" class="ch.qos.logback.core.rolling.RollingFileAppender">
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>ERROR</level>
</filter>
<encoder>
<pattern>
%msg%n
</pattern>
</encoder>
<!--滾動策略-->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!--路徑-->
<fileNamePattern>/var/log/tomcat/sell/error.%d.log</fileNamePattern>
</rollingPolicy>
</appender>
<root level="info">
<appender-ref ref="consoleLog" />
<appender-ref ref="fileInfoLog" />
<appender-ref ref="fileErrorLog" />
</root>
</configuration>
logback日誌