Spring Boot 系列 | 第三篇:日志配置

Spring Boot 系列 | 第三篇:日志配置

前言

本文不算原创(参考了网上相关博客资料),也不做任何声明,仅仅是作为笔者的笔记记录。

Spring Boot在内部日志中使用Commons Logging,但是默认配置也提供了常用日志的支持,如:Java Util Logging,Log4j,Log4j2Loglack,每种Logger都可以通过使用配置在控制台或文件输出日志。

本文的目录如下:

  • 默认日志介绍
  • 日志格式
  • 文件输出
  • 级别控制
  • 自定义日志配置
  • 使用`log4j“

默认日志

默认情况下,Spring Boot通常都会依赖spring-boot-starter这个starter会依赖了spring-boot-starter-logging,spring-boot-starter-logging是默认使用logback来记录日志。所以Spring Boot默认情况下大多使用logback来记录日志。(spring-boot-starter-web依赖spring-boot-starter,所以同样的道理)

日志格式

在启动Spring Boot项目的时候,可以看到很多输出。如下:

2018-02-07 11:07:18.868 INFO 22920 --- [ main] com.example.demo.DemoApplication : Starting DemoApplication on wangjianfengdeiMac.local with PID 22920 (/Users/wangjianfeng/javaworkspace/demo/target/classes started by wangjianfeng in /Users/wangjianfeng/javaworkspace/demo)

输出的内容描述:

  • 时间日期
  • 日志级别
  • 进程ID
  • — 标识日志开始
  • 线程名
  • logger名(通常使用源代码类名)
  • 日志内容

默认情况下,日志会在控制台输出。Spring Boot默认配置的日志输出级别为:ERROR/WARN/INFO
我们可以通过两种方式切换到debug级别

  • 在运行命令后面加入 --debug
  • application.properties中配置debug=true,会输出更多内容

文件输出

如果需要把日志输出到文件,需要添加一下配置:

  • logging.file = xxx 设置文件路径
  • logging.path = xxx 设置文件目录

级别控制

可通过application.properties配置日志级别

配置格式为:logging.level.*=LEVEL

  • logging.level.* 日志级别的前缀,*为包名或者Logger
  • LEVEL 日志级别,TRACT,DEBUG,INFO,WARN,ERROR,FATAL,OFF

自定义日志配置

默认的日志可以通过application.properties配置,也可以通过外部配置文件来配置,根据不同的日志系统,Spring Boot可以在classpath中找到以下文件名来加载。

  • logback:logback-spring.xml,logback-spring.groovy,logback.xml,logback.groovy
  • log4j:log4j-spring.xml,log4j.xml,log4j-spring.properties,log4j.properties

官方推荐使用带 -spring的文件名。

如果需要配置输出格式,可以在外部配置文件或者application.properties中指定以下参数

  • logging.pattern.console:定义输出到控制台的样式
  • logging.pattern.file:定义输出到文件的样式

更多的配置请参考文档

使用log4j

有很多情况下,大家喜欢使用log4j来记录日志,此时需要配置log4j为默认的logger,配置方式如下:

  • 添加log4j依赖

    <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-log4j</artifactId>
            <version>1.3.8.RELEASE</version>
    </dependency>
  • 去除logback依赖,如果不去除会冲突,如果依赖了spring-boot-starter或者spring-boot-starter-web则需要添加一下代码。

    <exclusions>
        <exclusion>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-logging</artifactId>
        </exclusion>
    </exclusions>
  • 添加配置文件,在resource文件夹下添加log4j.properties

  • 配置log4j,这里有一篇博客写得很详细,如果需要更多信息,请查看文档
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值