zoukankan      html  css  js  c++  java
  • 日志配置(springboot、mybatis、Lombok)

    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日志");

  • 相关阅读:
    96. Unique Binary Search Trees1和2
    576. Out of Boundary Paths
    686. Repeated String Match判断字符串重复几次可以包含另外一个
    650. 2 Keys Keyboard
    Penetration Test
    Penetration Test
    Penetration Test
    Penetration Test
    CISSP 考试经验分享
    2019-2020 ICPC Asia Hong Kong Regional Contest J—Junior Mathematician 数位dp
  • 原文地址:https://www.cnblogs.com/bestruggle/p/10050178.html
Copyright © 2011-2022 走看看