不同环境下如何输出不同日志 | 带你读《SpringBoot实战教程》之九

上一篇: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

控制台显示:
不同环境下如何输出不同日志 | 带你读《SpringBoot实战教程》之九
如果更换配置文件中的信息:

spring.profiles.active=test,dev

控制台打印:
不同环境下如何输出不同日志 | 带你读《SpringBoot实战教程》之九

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"
    }
}

执行结果:
不同环境下如何输出不同日志 | 带你读《SpringBoot实战教程》之九
控制台显示:
不同环境下如何输出不同日志 | 带你读《SpringBoot实战教程》之九

上一篇:在本地wubantu系统搭建spring cloud微服务环境的完整实现


下一篇:一文了解SpringBoot的日志管理 | 带你读《SpringBoot实战教程》之七