SpringBoot 日誌配置 默認採用LogBack做爲日誌輸出!html
具體輸出的格式詳解以下:spring
2019-01-10 17:30:08.685 :日期精確到時間毫秒級別apache
info是日誌級別 : 能夠設置爲其餘的級別如debug,error等springboot
9184 :進程idapp
--- : 分割符spring-boot
main: 表示主線程佈局
com.xxxxx: 一般爲源碼類測試
「:」 後即爲詳細的日誌信息spa
在application.properties文件中配置線程
若是你的終端支持ANSI,設置彩色輸出會讓日誌更具可讀性。經過在application.properties
中設置spring.output.ansi.enabled
參數來支持。
#多彩輸出 spring.output.ansi.enabled=detect #日誌級別 logging.level.root=info #全部包下面都以debug級別輸出 logging.level.*=info
能夠經過 logging.pattern.console = 進行配置
springboot默認會將日誌輸出到控制檯,線上查看日誌時會很不方便,通常咱們都是輸出到文件。
須要在application.properties配置
#日誌輸出路徑問價 優先輸出 logging.file logging.file=C:/Users/tizzy/Desktop/img/my.log #設置目錄,會在該目錄下建立spring.log文件,並寫入日誌內容, logging.path=C:/Users/tizzy/Desktop/img/ #日誌大小 默認10MB會截斷,從新輸出到下一個文件中,默認級別爲:ERROR、WARN、INFO logging.file.max-size=10MB
logging.file 和 logging.path 同時設置時候會優先使用logging.file 做爲日誌輸出。
日誌服務在ApplicationContext 建立以前就被初始化了,並非採用Spring的配置文件進行控制。
那咱們來如何進行自定義配置日誌呢。
springboot爲咱們提供了一個規則,按照規則組織配置文件名,就能夠被正確加載:
logback-spring.xml
, logback-spring.groovy
, logback.xml
, logback.groovy
log4j-spring.properties
, log4j-spring.xml
, log4j.properties
, log4j.xml
log4j2-spring.xml
, log4j2.xml
logging.properties
LogBack xml配置
<?xml version="1.0" encoding="UTF-8"?> <configuration> <!-- 控制檯打印日誌的相關配置 --> <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <!-- 日誌格式 --> <encoder> <pattern>%d{yyyy-MM-dd HH:mm:ss} [%level] - %m%n</pattern> </encoder> <!-- 日誌級別過濾器 --> <filter class="ch.qos.logback.classic.filter.LevelFilter"> <!-- 過濾的級別 --> <level>WARN</level> <!-- 匹配時的操做:接收(記錄) --> <onMatch>ACCEPT</onMatch> <!-- 不匹配時的操做:拒絕(不記錄) --> <onMismatch>DENY</onMismatch> </filter> </appender> <!-- 文件保存日誌的相關配置 --> <appender name="ERROR-OUT" class="ch.qos.logback.core.rolling.RollingFileAppender"> <!-- 保存日誌文件的路徑 --> <file>/logs/error.log</file> <!-- 日誌格式 --> <encoder> <pattern>%d{yyyy-MM-dd HH:mm:ss} [%class:%line] - %m%n</pattern> </encoder> <!-- 日誌級別過濾器 --> <filter class="ch.qos.logback.classic.filter.LevelFilter"> <!-- 過濾的級別 --> <level>ERROR</level> <!-- 匹配時的操做:接收(記錄) --> <onMatch>ACCEPT</onMatch> <!-- 不匹配時的操做:拒絕(不記錄) --> <onMismatch>DENY</onMismatch> </filter> <!-- 循環政策:基於時間建立日誌文件 --> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <!-- 日誌文件名格式 --> <fileNamePattern>error.%d{yyyy-MM-dd}.log</fileNamePattern> <!-- 最大保存時間:30天--> <maxHistory>30</maxHistory> </rollingPolicy> </appender> <!-- 基於dubug處理日誌:具體控制檯或者文件對日誌級別的處理還要看所在appender配置的filter,若是沒有配置filter,則使用root配置 --> <root level="debug"> <appender-ref ref="STDOUT" /> <appender-ref ref="ERROR-OUT" /> </root> </configuration>
Log4j
引如Log4j日誌時候 須要 排除logBack日誌
<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>
# 日誌級別,日誌追加程序列表... log4j.rootLogger=DEBUG,ServerDailyRollingFile,stdout #文件保存日誌 log4j.appender.ServerDailyRollingFile=org.apache.log4j.DailyRollingFileAppender #文件保存日誌日期格式 log4j.appender.ServerDailyRollingFile.DatePattern='.'yyyy-MM-dd_HH #文件保存日誌文件路徑 log4j.appender.ServerDailyRollingFile.File=/mnt/lunqi/demo/log4j.log #文件保存日誌佈局程序 log4j.appender.ServerDailyRollingFile.layout=org.apache.log4j.PatternLayout #文件保存日誌佈局格式 log4j.appender.ServerDailyRollingFile.layout.ConversionPattern=%d - %m%n #文件保存日誌須要向後追加(false是測試的時候日誌文件就清空,true的話就是在以前基礎上日後寫) log4j.appender.ServerDailyRollingFile.Append=false #控制檯日誌 log4j.appender.stdout=org.apache.log4j.ConsoleAppender #控制檯日誌佈局程序 log4j.appender.stdout.layout=org.apache.log4j.PatternLayout #控制檯日誌佈局格式 log4j.appender.stdout.layout.ConversionPattern=%d yyyy-MM-dd HH:mm:ss %p [%c] %m%n
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-log4j2</artifactId></dependency>
log4j2.xml
<?xml version="1.0" encoding="UTF-8"?> <configuration> <appenders> <Console name="Console" target="SYSTEM_OUT"> <ThresholdFilter level="trace" onMatch="ACCEPT" onMismatch="DENY" /> <PatternLayout pattern="%d{HH:mm:ss.SSS} %-5level %class{36} %L %M - %msg%xEx%n" /> </Console> <File name="log" fileName="log/test.log" append="false"> <PatternLayout pattern="%d{HH:mm:ss.SSS} %-5level %class{36} %L %M - %msg%xEx%n" /> </File> <RollingFile name="RollingFile" fileName="logs/spring.log" filePattern="log/$${date:yyyy-MM}/app-%d{MM-dd-yyyy}-%i.log"> <PatternLayout pattern="%d{yyyy-MM-dd 'at' HH:mm:ss z} %-5level %class{36} %L %M - %msg%xEx%n" /> <SizeBasedTriggeringPolicy size="50MB" /> </RollingFile> </appenders> <loggers> <root level="trace"> <appender-ref ref="RollingFile" /> <appender-ref ref="Console" /> </root> </loggers> </configuration>
更多查看官方文檔