Spring Boot日志管理
SpringBoot内部使用Commons Logging来记录日志,但是默认也提供了对常用日志组件的支持,如:Log4j,Logback等。每种Logger都可以通过配置使用控制台或者文件输出日志内容。
日志格式化
默认的日志输出如下:
-- ::33.595 INFO --- [ main] com.ysl.Application : Starting Application on master with PID (/home/workspace/springboottest/target/classes started by ysl in /home/workspace/springboottest)
输出内容元素具体如下:
- 时间日期-精确到毫秒
- 日志级别-ERROR, WARN, INFO, DEBUG or TRACE
- 进程ID
- 分隔符 —
---
标识实际日志的开始 - 线程名 — 方括号括起来(可能会截断控制台输出)
- Logger名 — 通常使用源代码的类名
- 日志内容
控制台输出
在Spring Boot中默认配置了ERROR
、WARN
和INFO
级别的日志输出到控制台。我们可以通过两种方式切换至DEBUG
级别:
在运行命令后加入--debug
标志,如:$ java -jar myapp.jar --debug
在application.properties
中配置debug=true
,该属性置为true的时候,核心Logger(包含嵌入式容器、hibernate、spring)会输出更多内容,但是你自己应用的日志并不会输出为DEBUG级别。
多彩输出
如果你的终端支持ANSI,设置彩色输出会让日志更具可读性。通过在application.properties
中设置spring.output.ansi.enabled
参数来支持。
- NEVER:禁用ANSI-colored输出(默认项)
- DETECT:会检查终端是否支持ANSI,是的话就采用彩色输出(推荐项)
- ALWAYS:总是使用ANSI-colored格式输出,若终端不支持的时候,会有很多干扰信息,不推荐使用
文件输出
Spring Boot默认配置只会输出到控制台,并不会记录到文件中,但是我们通常生产环境使用时都需要以文件方式记录。若要增加文件输出,需要在application.properties
中配置logging.file
或logging.path
属性。
- logging.file,设置文件,可以是绝对路径,也可以是相对路径。如:
logging.file=my.log
- logging.path,设置目录,会在该目录下创建spring.log文件,并写入日志内容,如:
logging.path=/var/log
日志文件会在10Mb大小的时候被截断,产生新的日志文件,默认级别为:ERROR、WARN、INFO
级别控制
在Spring Boot中只需要在application.properties
中进行配置完成日志记录的级别控制。
配置格式:logging.level.*=LEVEL
logging.level
:日志级别控制前缀,*
为包名或Logger名LEVEL
:选项TRACE, DEBUG, INFO, WARN, ERROR, FATAL, OFF
自定义日志配置
由于日志服务一般都在ApplicationContext创建前就初始化了,它并不是必须通过Spring的配置文件控制。因此通过系统属性和传统的Spring Boot外部配置文件依然可以很好的支持日志控制和管理。
- Logback:
logback-spring.xml
,logback-spring.groovy
,logback.xml
,logback.groovy
- Log4j:
log4j-spring.properties
,log4j-spring.xml
,log4j.properties
,log4j.xml
- Log4j2:
log4j2-spring.xml
,log4j2.xml
- JDK (Java Util Logging):
logging.properties
Spring Boot官方推荐优先使用带有-spring
的文件名作为你的日志配置(如使用logback-spring.xml
,而不是logback.xml
)
自定义输出格式
在Spring Boot中可以通过在application.properties
配置如下参数控制输出格式:
- logging.pattern.console:定义输出到控制台的样式(不支持JDK Logger)
- logging.pattern.file:定义输出到文件的样式(不支持JDK Logger)
Spring Boot日志管理的更多相关文章
- Spring Boot 日志管理
Spring Boot 日志管理 网址 Spring Boot 日志管理 http://blog.didispace.com/springbootlog/ Spring Boot快速入门(四)--日志 ...
- spring boot日志管理配置
spring Boot在所有内部日志中使用Commons Logging,但是默认配置也提供了对常用日志的支持,如:Java Util Logging,Log4J,Log4J2和Logback.每种L ...
- Spring Boot 日志记录 SLF4J
Spring Boot 日志记录 SLF4J 2016年01月12日 09:25:28 阅读数:54086 在开发中打印内容,使用 System.out.println() 和 Log4j 应当是人人 ...
- 54. spring boot日志升级篇—logback【从零开始学Spring Boot】
在<44. Spring Boot日志记录SLF4J>章节中有关相关的介绍,这里我们在深入的了解下logback框架. 为什么要使用logback ? --在开发中不建议使用System. ...
- 52. spring boot日志升级篇—log4j多环境不同日志级别的控制【从零开始学Spring Boot】
在上一章节中我们介绍了,仅通过log4j-spring.properties对日志级别进行控制,对于需要多环境部署的环境不是很方便,可能我们在开发环境大部分模块需要采用DEBUG级别,在测试环境可能需 ...
- Spring Boot 日志各种使用姿势,是时候捋清楚了!
@ 目录 1. Java 日志概览 1.1 总体概览 1.2 日志级别 1.3 综合对比 1.4 最佳实践 2. Spring Boot 日志实现 2.1 Spring Boot 日志配置 2.2 L ...
- ELK处理Spring Boot 日志,妙!
在排查线上异常的过程中,查询日志总是必不可缺的一部分.现今大多采用的微服务架构,日志被分散在不同的机器上,使得日志的查询变得异常困难. 工欲善其事,必先利其器.如果此时有一个统一的实时日志分析平台,那 ...
- Springboot 系列(四)Spring Boot 日志框架
注意:本 Spring Boot 系列文章基于 Spring Boot 版本 v2.1.1.RELEASE 进行学习分析,版本不同可能会有细微差别. 前言 Spring 框架选择使用了 JCL 作为默 ...
- Spring Boot事务管理(上)
摘要 本文主要介绍基于Spring Boot的事务管理,尤其是@Transactional注解详细用法.首先,简要介绍Spring Boot中如何开启事务管理:其次,介绍在Spring,Spring ...
随机推荐
- bootstrap css布局
1.移动先行 <meta name="viewport" content="width=device-width, initial-scale=1, maximum ...
- JSON_FORCE_OBJECT 数字索引数组 强转对象
$abc = array('a','b','c','d','e','f','g'); echo '<pre>'; var_dump($abc); echo json_encode($abc ...
- lepus部署
lepus部署 lepus安装 cd /usr/local/src/lepus_v3.7/ cd python/ sh install.sh mysql配置 mysql -uroot -p'zaBBi ...
- Mybatis-Plus 实战完整学习笔记(四)------全局参数配置
一.全局配置设置 (1)全局配置Id自动生成 <!--定义mybatisplus全局配置--> <bean id="globalConfig" class=&qu ...
- python基本数据类型之字符串(一)
python中字符串中有很多方法,具体方法如下图所示: 分割方法 字符串的分割方法: 1.join方法: join方法是字符串方法中最重要的方法之一,它的作用是将某一字符插入到字符串中用作连接. 具体 ...
- Windows下用curl命令
一开始自己是下载curl的可执行文件来弄的,发现中文会乱码: 按照网上的用chcp 65001后中文还是乱码,蒙逼中. 后来直接用git bash执行curl,发现git bash自带了这个命令:(可 ...
- mybatis spring boot深入
[size=large]头一篇博文说了整合了spring boot和mybatis大家都可以对后台数据进行操作但是如何才能进行高效的操作数据库节省代码,下面来一起谈论哈mybatis的通用mapper ...
- python基于pillow库的简单图像处理
from PIL import Image from PIL import ImageFilter from PIL import ImageEnhance import matplotlib.pyp ...
- css设置自适应屏幕高度
<style type="text/css"> body,html{ margin:0; height:100%; /*这里将高度设置为100%是这个布局实现自适应高度 ...
- (暴力 记录)Camellia的难题 -- zzuli -- 1784
http://acm.zzuli.edu.cn/problem.php?id=1784 Camellia的难题 Time Limit: 2 Sec Memory Limit: 128 MBSubmi ...