上一篇: 2種loger的使用 | 帶你讀《SpringBoot實戰教程》之八 下一篇: 還在手動操作?試試配置為開發模式 | 帶你讀《SpringBoot實戰教程》之十 本文來自于千鋒教育在阿裡雲開發者社群學習中心上線課程《SpringBoot實戰教程》,主講人楊紅豔, 點選檢視視訊内容 。
13. 多環境日志輸出:
根據不同環境(prod:生産環境,test:測試環境,dev:開發環境)來定義不同的日志輸出,在 logback-spring.xml中使用 springProfile 節點來定義,方法如下:
<!-- 測試環境+開發環境. 多個使用逗号隔開-->
<springProfile name="test,dev">
<logger name="com.qianfeng.controller" level="info" />
</springProfile>
<!-- 生産環境-->
<springProfile name="prod">
<logger name="com.qianfeng.controller" level="ERROR" />
</springProfile>
在application.properties檔案中指明使用哪一種:
spring.profiles.active=prod
控制台顯示:

如果更換配置檔案中的資訊:
spring.profiles.active=test,dev
控制台列印:
14.使用log4j日志管理
1.修改pom.xml檔案,過濾掉自帶的spring-boot-starter-logging,然後添加spring-boot-starter-log4j依賴包。
<!-- log4j -->
<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>
<version>1.3.8.RELEASE</version>
</dependency>
2.在resources目錄下建立log4j.properties配置檔案
配置info,error,console,debug四種輸出格式。
log4j.rootLogger=info,error,CONSOLE,DEBUG
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=%d{yyyy-MM-dd-HH-mm} [%t] [%c] [%p] - %m%n
log4j.logger.info=info
log4j.appender.info=org.apache.log4j.DailyRollingFileAppender
log4j.appender.info.layout=org.apache.log4j.PatternLayout
log4j.appender.info.layout.ConversionPattern=%d{yyyy-MM-dd-HH-mm} [%t] [%c] [%p] - %m%n
log4j.appender.info.datePattern='.'yyyy-MM-dd
log4j.appender.info.Threshold = info
log4j.appender.info.append=true
log4j.appender.info.File=e://springboot/api_services_info.log
log4j.logger.error=error
log4j.appender.error=org.apache.log4j.DailyRollingFileAppender
log4j.appender.error.layout=org.apache.log4j.PatternLayout
log4j.appender.error.layout.ConversionPattern=%d{yyyy-MM-dd-HH-mm} [%t] [%c] [%p] - %m%n
log4j.appender.error.datePattern='.'yyyy-MM-dd
log4j.appender.error.Threshold = error
log4j.appender.error.append=true
log4j.appender.error.File=e://springboot/api_services_error.log
log4j.logger.DEBUG=DEBUG
log4j.appender.DEBUG=org.apache.log4j.DailyRollingFileAppender
log4j.appender.DEBUG.layout=org.apache.log4j.PatternLayout
log4j.appender.DEBUG.layout.ConversionPattern=%d{yyyy-MM-dd-HH-mm} [%t] [%c] [%p] - %m%n
log4j.appender.DEBUG.datePattern='.'yyyy-MM-dd
log4j.appender.DEBUG.Threshold = DEBUG
log4j.appender.DEBUG.append=true
log4j.appender.DEBUG.File=e://springboot/api_services_debug.log
3.在使用到的類中聲明log以及輸出log資訊。
在controller中輸入:
@Controller
public class TestController {
private static Logger log = Logger.getLogger(TestController.class);
@RequestMapping("/tests")
@ResponseBody
public String tests() {
log.debug("debug日志");
log.info("info日志");
log.warn("warn日志");
log.error("error日志");
return "tests"
}
}
執行結果: