日志配置(springboot、mybatis、Lombok)

摘要:
每种类型的Logger都可以使用控制台或文件输出日志内容SLF4J--SimpleLoggingFacadeForJava。通常使用源代码的类名。springboot中jar的日志内容取决于springboot启动器。弹簧启动机日志Thymeaf取决于弹簧启动机控制台。日志输出级别从低到高为TRACE<

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

日志配置(springboot、mybatis、Lombok)第1张

控制台输出

日志级别从低到高分为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日志");

免责声明:文章转载自《日志配置(springboot、mybatis、Lombok)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇解决百度网盘(百度云)分享链接不存在失效、分享的文件已经被取消的问题创建等距世界:游戏开发入门下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

二进制部署K8S-2集群部署

二进制部署K8S-2集群部署 感谢老男孩教育王导的公开视频,文档整理自https://www.yuque.com/duduniao/k8s。 因为在后期运行容器需要有大量的物理硬件资源使用的环境是用的Wmware EXSI如果使用笔记本可适当调整虚拟机配置。 角色 主机名 IP CPU Mem OS (主)负载均衡、内网DNS hdss7-11...

Ansible 拷贝文件或目录

写法如下: [root@localhost ~]$ ansible 192.168.119.134 -m copy -a "src=/etc/passwd dest=/tmp/passwd owner=root group=root mode=0644" # 拷贝本机文件到远程客户端 [root@localhost ~]$ ansible 192....

c++ 数组元素拷贝到容器(copy)

#include <iostream> // cout #include <algorithm> // copy #include <vector> // vector using namespace std; int main () { int myints[]={10,20...

centos8安装docker+phpfpm+alpine+nginx+mariadb

2020-3-31 12:51:44 星期二 记录一下安装过程备忘: 1. 宿主机 centos8 安装docker-ce (可参考centos7的安装方法, 没有太大变化) 2. nginx 直接装在宿主机上, 添加一个域名的配置, 将php文件的请求转发到 172.0.0.1:9700 3. php通过docker的方式安装, 基础镜像选择alpine...

webstorm设置新建vue文件的模板

Webstorm 添加新建文件类型 以创建 Vue 文件为例:   File—Setting—Editor—File and Code Template 分支,点击添加,依次输入 Name 和 Extension,OK 即可。如图: Webstorm 创建文件模板   Webstorm 新建文件过程中现在文件头部加入创建时间,作者信息,项目名称,需要用到...

Mybatis将日志信息打印到控制台

在mybatis.config.xml中增加如下配置 (mybatis的主配置文件):   <configuration>   <settings>      <setting name="logImpl" value="STDOUT_LOGGING" />   </settings></config...