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

SLF4J——Simple Logging Facade For Java,它是一个针对于各类Java日志框架的统一Facade抽象。

Java日志框架众多——常用的有java.util.logging, log4j, logback,commons-logging, Spring框架使用的是Jakarta Commons Logging API (JCL)。

而SLF4J定义了统一的日志抽象接口,而真正的日志实现则是在运行时决定的——它提供了各类日志框架的binding。

springboot默认日志:Logback

Logback

  • 时间日期:精确到毫秒

  • 日志级别:ERROR, WARN, INFO, DEBUG or TRACE

  • 进程ID

  • 分隔符:--- 标识实际日志的开始

  • 线程名:方括号括起来(可能会截断控制台输出)

  • Logger名:通常使用源代码的类名

  • 日志内容

springboot中的jar依赖

spring-boot-starter中spring-boot-starter-logging

Thymeleaf依赖spring-boot-starter

控制台输出

日志级别从低到高分为TRACE < DEBUG < INFO < WARN < ERROR < FATAL,如果设置为WARN,则低于WARN的信息都不会输出。

Spring Boot中默认配置ERROR、WARN和INFO级别的日志输出到控制台,在application.properties中配置debug=true,可开启debug级别日志

文件输出

如果要输出文件,需在application.properties中设置logging.file或logging.path属性。

注:二者不能同时使用,如若同时使用,则只有logging.file生效

默认情况下,日志文件的大小达到10MB时会切分一次,产生新的日志文件,默认级别为:ERROR、WARN、INFO,

要设置日志级别用logging.level,格式为:'logging.level.* = LEVEL'

springboot下自定义日志配置

不同的日志系统,可以按如下规则组织配置文件名:

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

整合mybatis,如果需要将sql语句输出则需要设置

logging.level.com.tylnn.dao.*=DEBUG

总结一下,之前设置了好久总是不能成功的将sql语句输出到日志中,主要原因:

springboot的application属性文件中,设置了mybatis的输出类为

mybatis.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl (这是指控制台输出)

然后mybatis中的mybatis-config.xml文件中却配置成了LOG4J

<settings>
<!-- 打印查询语句 -->
<setting name="logImpl" value="LOG4J" /> 
</settings>

补充说下,MyBatis 所用日志的具体实现,未指定时将自动查找。

SLF4J | LOG4J | LOG4J2 | JDK_LOGGING | COMMONS_LOGGING | STDOUT_LOGGING | NO_LOGGING

springboot下lombok日志插件的集成

一般在代码中要引用log对象,需要先手动将这个对象创建出来,比如:private static final Logger log = LoggerFactory.getLogger(XXX.class);

这样的话,这里的XXX就需要根据类名的不通,每个进入类中逐一更改,甚是麻烦,为此就发现了lombok这个插件。

要使用这个插件,以eclipse为例:分2部分,1个是装插件,2个是代码中引用jar包

一.装插件

1.需要下载lombok的jar包,下载地址: https://projectlombok.org/download.html

2.双击lombok.jar,一直选到eclipse.ini文件,点击"install/update"

3.重启eclipse

二.代码中引用jar包

1.pom文件引用

<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>

2.代码中引用

controller类上加入注解@Slf4j

@RestController
@Slf4j
public class LombokTestController{}

方法中直接使用

log.info("测试lombok日志");

转载于:https://www.cnblogs.com/bestruggle/p/10050178.html

日志配置(springboot、mybatis、Lombok)相关推荐

  1. springboot mybatis 事务_SpringBoot 下 Mybatis 的缓存

    "IT魔幻屋"致力于让你遇见更好的自己! 说起 mybatis,作为 Java 程序员应该是无人不知,它是常用的数据库访问框架.与 Spring 和 Struts 组成了 Java ...

  2. springboot日志配输出路径配置_Spring Boot 日志配置方法(超详细)

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

  3. SpringBoot (八)日志配置

    SpringBoot日志:Springboot内部采用的是Commons Logging 进行日志记录,但在底层为Java Util,Loggin,Log4J,Logback等日志框架提供默认配置,虽 ...

  4. ShardingSphere分库分表(SpringBoot+mybatis+mysql)配置

    一.什么是ShardingSphere 定位为轻量级 Java 框架,在 Java 的 JDBC 层提供的额外服务. 它使用客户端直连数据库,以 jar 包形式提供服务,无需额外部署和依赖,可理解为增 ...

  5. SpringBoot+Mybatis+Swagger2环境搭建+logback-spring日志打印及入库

    本文简介 本文将基于Spring官方提供的快速启动项目模板集成Mybatis.Swagger2框架,并讲解mybatis generator一键生成代码插件.logback.一键生成文档以及多环境的配 ...

  6. Spring Boot与日志 ——日志框架、日志配置||SLF4j使用||SpringBoot日志关系||切换日志框架

    1.日志框架 SLF4j使用 1.如何在系统中使用SLF4j 以后开发的时候,日志记录方法的调用,不应该来直接调用日志的实现类,而是调用日志抽象层里面的方法: 给系统里面导入slf4j的jar和 lo ...

  7. SpringBoot与日志配置

    前言: 前文我们介绍了配置文件的原理还有如果切换配置文件的环境,个人觉得归纳为一手册,要用的时候查一下就好了.不然记那么多挺麻烦的.. 1.日志 1.日志框架 老生常谈,什么是日志:我们平时用Syst ...

  8. springboot定时删除log4j_SpringBoot整合log4j2进行日志配置及防坑指南

    1.Log4j2优点 具体优点可以参考官方文档:https://logging.apache.org/log4j/2.x/ 我这边只简单说一下: 相比与其他的日志系统,log4j2丢数据的情况少:在多 ...

  9. SLF4j的介绍与使用+SpringBoot日志配置

    关于日志 日志级别 error > warn > info > debug > trace > fatal trace:级别最低 debug:需要调试时候的关键信息 in ...

最新文章

  1. 用python玩转数据第四周答案_2020大学mooc用Python玩转数据课后答案
  2. java 小波去噪原理_小波去噪的基本知识
  3. 无人驾驶遇见人工智能 百度将推有“大脑”的汽车
  4. Spring Data JPA教程:获取所需的依赖关系
  5. 华锋e路航x10升级工具_万商云集:疫情下火爆的电子合同,背后是企业数字化升级的必然...
  6. Linux系统:Centos7下搭建PostgreSQL关系型数据库
  7. REDM库使用教程01(详细入门)
  8. linux脚本怎么获取参数,在Bash shell脚本编程中,如何正确无误获取到“脚本选项参数”和“脚本参数”呢?...
  9. [Android Studio] Android Studio如何快速生成get,set,tostring,构造函数
  10. C# winForm utf8 gbk 相互转码小工具
  11. npm ERR! Error: EPERM: operation not permitted问题解决
  12. Xshell 6免费版
  13. c# Socket Udp通讯示例源码
  14. JavaScript中的数组方法总结+详解
  15. python redis缓存_第二百九十五节,python操作redis缓存-字符串类型
  16. 2015新款 MacBook 用心的测评与试用. 最轻薄的Mac上市
  17. sicily 1608
  18. R语言如何从外部读取数据到R中
  19. Java 由今天往前推7天怎么算
  20. 朗伯辐射强度模型MATLAB,朗伯体辐射出射度与辐亮度的关系.PPT

热门文章

  1. 1.3 使用电脑测试MC20的电话语音功能
  2. 验证码识别笔记(二)
  3. leetcode练习——数组篇(1)(std::ios::sync_with_stdio(false);std::cin.tie(nullptr);)
  4. 内存问题提醒!结构体+protobuf做协议体发送!序列化
  5. 进程间通信之共享内存
  6. Vue.directive自定义指令
  7. EasyUI学习总结(二)——easyloader分析与使用
  8. Liferay中使用portlet:resourceURL触发serveResource()方法调用的细节
  9. 【database】database domain knowledge
  10. 个人收集一些程序员面试题目(一) 一起分享