打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Spring Boot 日志

一、日志

1、SpringBoot采用的日志

  日志分为日志抽象层与日志实现层。类似于JDBC与数据库的形式,不管连接的是什么数据库,只需将JDBC中对应的数据库信息修改即可。这里的日志抽象层是类似JDBC的效果,只需修改相应的日志实现层的信息即可。
  常用日志抽象层分类:
    JCL
    SLF4j
    jboss-logging
  常用日志实现层分类:
    Log4j
    JUL
    Log4j2
    Logback
  SpringBoot底层采用的是Spring框架,Spring默认采用JCL。但SpringBoot选用SLF4j与logBcak来实现日志的输出。

2、使用SLF4j

(1)官网地址:https://www.slf4j.org/
(2)使用手册地址: https://www.slf4j.org/manual.html
(3)手册地址中有一个HelloWorld示例:

【需要导入的jar包】slf4j的jar包,以及其实现层的jar包。【HelloWorld.java】import org.slf4j.Logger;import org.slf4j.LoggerFactory;public class HelloWorld {  public static void main(String[] args) {    Logger logger = LoggerFactory.getLogger(HelloWorld.class);    logger.info("Hello World");  }}

(4)常用模式:

 

3、使用 SLF4J统一不同框架的日志

(1)地址: https://www.slf4j.org/legacy.html
(2)步骤:
  step1:将系统中其他原有的日志框架先排除出去。
  step2:使用一个中间包去替换原有的jar包。
  step3:导入slf4j 以及 相关实现层的 jar 包。
(3)比如现在想要将Spring框架的日志(commons-logging)转为(SLF4J logback)。
  首先使用 jcl-over-slf4j.jar 去替换commons-logging.jar包。然后需要导入 SLF4J与logback相关的jar包。

 

4、SpringBoot的日志

(1)SpringBoot底层使用slf4j logback 记录日志。
(2)SpringBoot会将不同的日志框架转为slf4j(使用中间替换包,先将原jar包从依赖关系中剔除,再添加新的jar包依赖)。
  在IDEA中找到<dependencies>标签,右击选中Diagrams,接着选中 Show Dependencies,可以看到当前所有依赖信息组成的图。

 

找到日志相关信息,可以看到SpringBoot底层会将不同的日志框架转为slf4j 。

 

5、SpringBoot如何使用日志

(1)获得日志记录器,使用 LoggerFactory.getLogger()。
(2)日志的级别:
  由低到高:trace < debug < info < warn < error
  根据不同的级别输出日志信息。对于某个级别,输出比此级别高以及此级别的日志。
  其中 SpringBoot 默认使用 info 级别的信息。即 输出 info , warn, error 等日志信息。

【在test目录下的一个测试类】package com.example.helloworld;import org.junit.Test;import org.junit.runner.RunWith;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.springframework.boot.test.context.SpringBootTest;import org.springframework.test.context.junit4.SpringRunner;@RunWith(SpringRunner.class)@SpringBootTestpublic class HelloworldApplicationTests {    Logger logger = LoggerFactory.getLogger(getClass());    @Test    public void contextLoads() {        logger.trace("=== trace ===");        logger.debug("=== debug ===");        logger.info("=== info ===");        logger.warn("=== warn ===");        logger.error("=== error ===");    }}

 

(3)设置日志打印级别:
  可以在配置文件(application.properties)中使用 logging.lever 去设置级别。

 

(4)选择日志打印的位置:
  在配置文件中,如果存在logging.file 且 文件名为 my.log, 则会输出日志到当前项目路径下的 my.log文件中。
  在配置文件中,如果存在logging.path 且文件名为 /spring/log, 则会输出到指定目录的spring.log文件中。
  在配置文件中,若上述两个都未指定,则默认输出到控制台。
  在配置文件中,若上述两个均存在,则以logging.file为主。

(5)设置日志打印的格式:
  在配置文件中,使用 logging.pattern.console 可以指定打印在控制台的日志格式。
  使用 logging.pattern.file 可以指定打印在指定文件中的日志格式。

【日志格式:】    %d : 表示日期时间。    %thread :表示线程名。    %-5lever : 级别从左显示5个字符的宽度。    %logger[50] :表示logger名字最长为50个字符,否则按照点分割。    %msg : 表示日志消息。    %n :表示换行符。    【举例:】     logging.pattern.console = %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5lever %logger[50] -- %msg %n

 

来源:https://www.icode9.com/content-4-372951.html
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
SpringBoot统一日志框架
Java平台下日志的那些事
Spring MVC集成slf4j-logback(转:http://blog.csdn.net/sadfishsc/article/details/47160213)
SpringBoot里slf4j日志功能的默认实现
log4j logback slf4j项目配置中的简单总结
Java日志框架:SLF4J, Apache Common
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服