# Spring Boot 日志
## 日志支持
spring boot 支持的日志框架有
- Java Util Logging、
- Log4J2
- Logback **默認**
## 日志說明
### 默認日志如下:
```
2017-03-22 10:35:50.325 INFO 9220 --- [ost-startStop-1] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext
2017-03-22 10:35:50.326 INFO 9220 --- [ost-startStop-1] o.s.web.context.ContextLoader : Root WebApplicationContext: initialization completed in 5837 ms
2017-03-22 10:35:50.567 INFO 9220 --- [ost-startStop-1] o.s.b.w.servlet.ServletRegistrationBean : Mapping servlet: 'dispatcherServlet' to [/]
```
### 默認輸出說明:
* 時間(精確到毫秒)
* 日志級別,為`ERROR`,`WARN`,`INFO`,`DEBUG`或`TRACE`,默認輸出`INFO`及以上
* 進程ID
* 一個分割線`---`
* 線程名稱
* 日志名稱
* 日志內容
### 日志自定義配置
```
#日志路徑
logging.file=/var/logs/ly.log
#全局級別
logging.level.*=info
#細粒度級別
logging.level.root=WARN
logging.level.org.springframework.web=DEBUG
logging.level.org.hibernate=ERROR
#日志配置文件
logging.config=classpath:logback-liuyin.xml
```
> Spring Boot默認會加載classpath:logback-spring.xml或classpath:logback-spring.groovy
> 據說不要用logback.xml文件命名,SpringBoot不能完全實例化這個文件(Spring Boot官方也建議用成logback-*.xml這種形式,而不用logback.xml)
## 使用Log4J2
如果不想用logback,而使用log4j2:
### 去除logback依賴,添加log4j2依賴
```
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-log4j</artifactId>
</dependency>
```
### 添加log4j2配置文件
在classpath添加log4j2.xml或者log4j2-spring.xml(spring boot 默認加載)
## 比較
- 性能:Log4J2與Logback都強于log4j
* 配置:Logback最簡潔