Spring-boot教程(二)日志

一、springboot 默认日志

1、默认日志框架 Logback :

默认情况下,Spring Boot会用Logback来记录日志,并用INFO级别输出到控制台。在运行应用程序和其他例子时,你应该已经看到很多INFO级别的日志了。

从上图可以看到,日志输出内容元素具体如下:

  • 时间日期:精确到毫秒
  • 日志级别:ERROR, WARN, INFO, DEBUG or TRACE
  • 进程ID
  • 分隔符:— 标识实际日志的开始
  • 线程名:方括号括起来(可能会截断控制台输出)
  • Logger名:通常使用源代码的类名
  • 日志内容

2、SpringBoot默认配置了【org.slf4j】

定义了一套接口,是一个日志门面,可实现多个日志系统间快速切换(通过修改配置文件)

具体日志实现可以选用Log4j, commons logging, logback 或者 java.util.logging。

3、使用实例

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class StudyBootDemoApplication {
    protected static final Logger logger = LoggerFactory.getLogger(StudyBootDemoApplication.class);

    public static void main(String[] args) {
        logger.info("SpringBoot开始加载");
        SpringApplication.run(StudyBootDemoApplication.class, args);
        logger.info("SpringBoot加载完毕");
    }
}

springboot有默认配置,所以可以不用自己定义log配置,若需要设置日志级别以及输出文件则需要

在application.properties中简单配置:


#配置日志
logging.level.root=INFO
logging.level.org.springframework.web=DEBUG
logging.level.org.hibernate=ERROR
logging.path=./log/info.log

二、使用Log4j。

由于springboot没有集成Log4j,所以需要自己来集成。如果是用这种方式,就不要在aoolication.properties中配置log了。

1、修改pom.xml文件,

过滤掉自带的spring-boot-starter-logging,然后添加spring-boot-starter-log4j依赖包。

<dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter</artifactId>
        <exclusions>
         <!-- 排除自带的logback依赖,这一个就可以去掉所有自带的日志实现系统 -->
            <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四种输出格式。

project=datasight
logdir=./logs/${project}

### set log levels ###
log4j.rootLogger = info,stdout
# config this project appender,log level:info,error #
log4j.logger.com.ts.report = info,error,bizInfo,bizError

### 控制台输出 ###  
log4j.appender.stdout=org.apache.log4j.ConsoleAppender  
log4j.appender.stdout.Target=System.out  
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout  
log4j.appender.stdout.layout.ConversionPattern=[%-d{yyy-MM-dd HH\:mm\:ss}]-[%p]-[%l] - %m%n 

# info log everyday file#
log4j.loger.bizInfo = info,bizInfo
log4j.appender.bizInfo=org.apache.log4j.DailyRollingFileAppender  
log4j.appender.bizInfo.File=${logdir}/info.log 
log4j.appender.bizInfo.layout=org.apache.log4j.PatternLayout  
log4j.appender.bizInfo.DatePattern='_'yyyy-MM-dd
log4j.appender.bizInfo.layout.ConversionPattern=[%-d{yyy-MM-dd HH\:mm\:ss}]-[%p]-[%l] - %m%n 
log4j.appender.bizInfo.Threshold=INFO 
#log4j.additivity.bizInfo=false  

##  error log ##
log4j.loger.bizError = info,bizError
log4j.appender.bizError = org.apache.log4j.DailyRollingFileAppender
log4j.appender.bizError.File = ${logdir}/error.log
log4j.appender.bizError.layout = org.apache.log4j.PatternLayout
log4j.appender.bizError.DatePattern='_'yyyy-MM-dd
log4j.appender.bizError.layout.ConversionPattern =[%-d{yyy-MM-dd HH\:mm\:ss}]-[%p]-[%l] - %m%n 
log4j.appender.bizError.Threshold = ERROR

3.、 在使用到的类中声明log以及输出log信息。

//Log4j自带的
private static final Logger LOGGER = Logger.getLogger(Application.class);

//或者用SLF4j门面都可以
private static final Logger LOGGER = LoggerFactory.getLogger(Application.class);

输出结果如下:

扫描二维码关注公众号,回复: 2694469 查看本文章

附录:

1、过滤掉自带的spring-boot-starter-logging,然后没有添加spring-boot-starter-log4j依赖包,console显示的是

猜你喜欢

转载自blog.csdn.net/wqc19920906/article/details/81563012