上一篇: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"
}
}
执行结果:
控制台显示: