Spring Boot配置log4j2日志

开发环境

系统:MacOS Mojave 版本10.14.6

IDE:IDEA2020.1.2

Java:Java1.8

数据库:SQL Server 2008 R2

在这个项目上实验

Spring boot集成Mybatis和SQL Server

开发环境 系统:MacOS Mojave 版本10.14.6 IDE:IDEA2020.1.2 Java:Ja
通用所有spring boot项目

log4j2日志

日志级别:从error到trace,它的级别逐渐向下,重要性越来越低

  • error:错误,例如:抛出异常的时候、连接不上某些数据库的时候;一旦发生error,相当于我们要人为介入,去排查,去修复。
  • warn:警告,通常用的不多
  • info:起到的作用,留给我们一些记录,这些记录或许在当时不是很重要,但是在未来发生线上问题,去排查的时候是用得到的,比如说用户的请求返回就是属于info类别的。
  • debug:用于自身在程序开发过程中去使用的,比如说有的时候,想打印一下这个方法它执行了多少时间,而这些信息不需要以info的级别去记录,因为那样的话会引入过多的无用信息,所以我们就用debug级别去记录这些跟开发息息相关的内容
  • trace:记录非常非常多的更加繁杂的信息,大部分信息对于我们业务开发者人员,不是很有用的,可能更关注trace日志的,比如:框架的开发者、MyBatis的开发者…他们在开发过程中,更多的用到的trace日志级别,对于我们不需要关注到

我们主要关注:error、info、debug这三个级别。

目录

1.排除Logback依赖

2.引入Log4j2依赖

3.配置Log4j2

4.实验测试

一、排除Logback依赖

首先需要排除之前的日志组件,否则不同的日志组件在一起的话,会有冲突。打开pom.xml文件。

定位到 -> -> spring-boot-starter-web 添加标签(作用:排除特定的一些依赖,以便排除冲突):

    org.springframework.boot
    spring-boot-starter-web
    
    
        
            org.springframework.boot
            spring-boot-starter-logging
        
    

二、引入log4j2依赖



    org.springframework.boot
    spring-boot-starter-log4j2

不需要为它指定版本,因为它会知道Spring boot版本用的是什么,于是它会去匹配。

三、配置Log4j2

在resources目录下新建log4j2.xml文件(见下载页),以下是我的配置,可以根据自己的需求进行修改,看下我的文件配置了哪些内容:

baseDir:自定义的目录,而这个baseDir对于每个计算机来讲,都是不一样的。${sys:user.home}/logs/test-demo这个文件夹需要自己手动建立,因为部署到服务器上之后,通常是需要有一个特定的文件夹,来保存日志。所以我在我电脑上也建立了这样的文件夹,在Linux和macOS下这个${sys:user.home}地址,对应用户名所在目录,而由于Windows系统它的文件描述是和Linux是不一样的,所以是Windows操作系统的话,在这里可以修改为自己的路径,比如说在D盘下某个文件夹,给它建好之后,把这个地址${sys:user.home}/logs/test-demo替换掉就可以了。



  
    
    
  

  
    
    
      
      
      
      
    

    
    
      
      
        
        
        
      
      
      
      
      
        
        
        
        
      
    

    
    
      
      
        
        
        
      
      
      
      
      
        
        
        
        
      
    

    
    
      
      
        
        
      
      
      
      
        
        
        
        
      
    
  
  
    
      
      
      
      
    

  

四、实验测试

运行程序,打开文件夹看看里面是不是生成了文件,我这里已经成功

彩蛋

实时监测文件里是不是写入新的内容,打开终端,输入命令:

tail -f 这个命令起到作用可以看到当前新增增加的一部分内容,后面加上文件名

我们去浏览器访问链接,一旦有链接被访问过,可以看到日志中,同样打印出来了一些信息:

[14:56:23:986] [INFO] - org.apache.juli.logging.DirectJDKLog.log(DirectJDKLog.java:173) - Initializing Spring DispatcherServlet 'dispatcherServlet'
[14:56:23:986] [INFO] - org.springframework.web.servlet.FrameworkServlet.initServletBean(FrameworkServlet.java:525) - Initializing Servlet 'dispatcherServlet'
[14:56:23:993] [INFO] - org.springframework.web.servlet.FrameworkServlet.initServletBean(FrameworkServlet.java:547) - Completed initialization in 6 ms
[14:56:24:042] [INFO] - com.zaxxer.hikari.HikariDataSource.getConnection(HikariDataSource.java:110) - student_management_datasource - Starting...
[14:56:24:444] [INFO] - com.zaxxer.hikari.HikariDataSource.getConnection(HikariDataSource.java:123) - student_management_datasource - Start completed.

经过dispatcherServlet。

可以看到有了这个提示追加功能之后,我们未来可以用这个方法去排查问题,比如说我们把这个控制台放在这里,然后再去访问,再回来看多了哪些日志,那这些日志一定是这次访问所生成的,所以排查起来特别方便。

我们已经完成了对日志的配置。

下载权限

查看
  • ¥{{right.value}}
    {{right.value}}
    免费下载
    评论后下载
    登录后下载

  • {{attr.name}}:
您当前的等级为
您有每天免费下载所有资源次的特权,今日剩余 已取得下载权限
Java

Spring boot集成Mybatis和SQL Server

2020-8-6 14:00:41

Java

Spring boot配置AOP统一处理Web请求日志

2020-8-6 17:33:51

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索