博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SpringBoot学习---第二篇:日志配置
阅读量:2054 次
发布时间:2019-04-28

本文共 4450 字,大约阅读时间需要 14 分钟。

目录


Spring Boot在所有内部日志中使用,但是默认配置也提供了对常用日志的支持,如:,, 和。每种Logger都可以通过配置使用控制台或者文件输出日志内容。

1 配置 logback

默认情况下,Spring Boot会用Logback来记录日志,并用INFO级别输出到控制台。

1.1 日志格式

SpringBoot 的默认输出的日志格式如下:

输出如下元素:

  • 时间日期:精确到毫秒,可以用于排序
  • 日志级别:ERROR、WARN、INFO、DEBUG、TRACE
  • 进程ID
  • 分隔符:采用---来标识日志开始部分
  • 线程名:方括号括起来(可能会截断控制台输出)
  • Logger名:通常使用源代码的类名
  • 日志内容:我们输出的消息

Logback 是没有FATAL级别的日志,它将被映射到ERROR。

日志级别从低到高分为:TRACE< DEBUG< INFO< WARN< ERROR< FATAL。

1.2 日志输出

SpringBoot 默认为我们输出的日志级别为INFO、WARN、ERROR,如需要使用 “debug”,可以通过以下方式开启

  • 命令模式配置: java -jar myapp.jar --debug
  • 资源文件配置:在 application.properties 配置 “debug=true”

1.3 文件保存

默认情况下,SpringBoot 仅将日志输出到控制台,不会写入到日志文件中去。如果除了控制台输出之外还想写日志文件,则需要在 application.properties 设置 logging.file 或 logging.path 属性。

日志文件在达到10 MB 时进行切割,默认情况下会记录 ERROR、WARN、INFO 级别消息。

  • logging.file.max-size:限制日志文件大小
  • logging.file.max-history:限制日志保留天数

1.4 配置日志文件

默认情况下,Logback 用 INFO 级别输出到控制台,不会保存到文件。

spring boot 默认会加载 classpath:logback-spring.xml 或者 classpath:logback-spring.groovy。如需要自定义文件名称,在 application.properties 中配置 logging.config 选项即可。

1.4.1 默认情况

测试代码:

package com.example.demo.controller;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController;@RestController@RequestMapping(value = "/log")public class LogController {    private final Logger logger = LoggerFactory.getLogger(this.getClass());    @RequestMapping("writelog")    public String writeLog() {        logger.debug("This is a debug message");        logger.info("This is an info message");        logger.warn("This is a warn message");        logger.error("This is an error message");        return "OK";    }}

在浏览器中输入http://localhost:8080/log/writelog 将会看到以下结果:

没有配置任何其它配置,就可以看到来自logback root logger的输出信息。我们注意到debug级别的日志没有记录下来,那是因为Spring Boot为Logback提供了默认的配置文件 base.xml。

base.xml内容:

base.xml 中 root logger的日志级别被重写为Info级别,这就是上面例子中debug级别的日志没有打印的原因。

1.4.2 通过application.properties文件对Logback进行配置

配置日志文件:log.log 

配置 com.example.demo.controller 日志级别为:debug

logging.file=log.loglogging.level.com.example.demo.controller = debug

结果:

1.4.3 通过额外的文件配置Logback

在 src/main/resources 下创建 logback-spring.xml 文件,实例如下:

${PATTERN}
${LOG_HOME}/info/info.%d{yyyy-MM-dd}.log
30
${PATTERN}
100MB
  
  
  
${LOG_HOME}/error/error.%d{yyyy-MM-dd}.log
  
30
  
${PATTERN}
100MB
ERROR
ACCEPT
DENY
  
 

1.4.1 <springProfile>

<springProfile> 标签使我们让配置文件更加灵活,它可以选择性的包含或排除部分配置

1.4.2  <appender>

格式化日志输出节点,有俩个属性name和class,class用来指定哪种输出策略,常用就是控制台输出策略和文件输出策略。

控制台输出ConsoleAppender:ch.qos.logback.core.ConsoleAppender 

输出到文件 RollingFileAppender:ch.qos.logback.core.rolling.RollingFileAppender

1.4.3  <loger>

<loger>用来设置某一个包或者具体的某一个类的日志打印级别、以及指定<appender>。有三个属性:

name: 用来指定受此loger约束的某一个包或者具体的某一个类。

level: 用来设置打印级别:TRACE, DEBUG, INFO, WARN, ERROR, ALL 和 OFF

addtivity: 是否向上级loger传递打印信息。默认是true。

2 配置 log4j2

主要介绍spring boot集成log4j2日志框架。

2.1 添加依赖

打开pom.xml文件,去除logback的依赖包,添加log4j2的依赖包

2.2 配置文件

默认的properties配置对log4j2不够友好,我们应用外部配置文件,在资源文件夹src/main/resources下添加log4j2.xml或者log4j2-spring.xml,启动后spring boot自动加载,配置文件的示例如下:

%d{yyyy-MM-dd HH:mm:ss.SSS} |-%-5level [%thread] %c [%L] -| %msg%n

 

参考:

 

 

 

 

 

 

 

 

 

 

你可能感兴趣的文章
【托业】320题-语法题(03-04)(03-37、04-11)
查看>>
【日语】五十音图-一个好用的日语五十音图记忆方法
查看>>
linux下使用crontab实现定时PHP计划任务失败的原因分析
查看>>
linux环境下安装redis扩展
查看>>
一个简单大方的赞后+1,踩后-1js动画效果
查看>>
新手学习编程的最佳方式
查看>>
从json_encode过来的的字符串被返回到html页面时的解析
查看>>
linux虚拟机局域网网卡配置
查看>>
用js判断是否为手机浏览,如果是手机浏览就跳转到手机站
查看>>
每天一个linux命令(26):用SecureCRT来上传和下载文件(转载自竹子)
查看>>
定时启动计划任务(转载自网络)
查看>>
Javascript的RegExp对象(转载自网络)
查看>>
rwx对于文件和目录的意义
查看>>
借助csv用PHP生成excel文件
查看>>
使用SimpleXML解析xml文件数据
查看>>
php读取excel文档内容(转载)
查看>>
vim基本命令(转载自网络)
查看>>
Linux学习(二十二)Shell基础(二)变量、环境变量配置文件
查看>>
Linux学习(二十四)正则表达式(二)sed
查看>>
Linux学习(二十三)正则表达式(一)grep/egrep
查看>>