「Spring整合组件」日志框架

常见的日志框架

  • java.util.logging:是JDK在1.4版本中引入的Java原生日志框架
  • Log4j:Apache的一个开源项目,可以控制日志信息输送的目的地是控制台、文件、GUI组件等,可以控制每一条日志的输出格式,这些可以通过一个配置文件来灵活地进行配置,而不需要修改应用代码。虽然已经停止维护了,但目前绝大部分企业都是用的log4j。
  • LogBack:是Log4j的一个改良版本
  • Log4j2:Log4j2已经不仅仅是Log4j的一个升级版本了,它从头到尾都被重写了。

slf4j是一个日志输出接口,其本身是没有具体实现的,必须的借助日志框架(Log4j、LogBack、Log4j2)才能更好的实现日志输出。使用slf4j能够更好的让用户进行日志框架的切换而无需修改代码。

Spring整合Log4j2

Log4j2是Log4j 1.x的升级版版,在Log4j 1.x的基础上有显著的改进,并且提供了Logback中许多i可用的功能,同时也修复了一些Logback上的一些固有的问题。

Maven配置

首先检查Spring自身的日志系统是否是基于Commons-Logging接口的,如果是,为了避免冲突,故需在配置依赖中将Spring中的Commons-Logging取消依赖,如下操作:

<dependency>     <groupId>org.springframework</groupId>     <artifactId>spring-core</artifactId>     <version>${spring.version}</version>     <exclusions>         <exclusion>             <groupId>commons-logging</groupId>             <artifactId>commons-logging</artifactId>         </exclusion>     </exclusions> </dependency>

2、配置 Slf4j 需要的依赖:(选用“1.7.25”版本)

<!-- slf4j config start --> <dependency>     <groupId>org.slf4j</groupId>     <artifactId>slf4j-api</artifactId>     <version>${slf4j}</version> </dependency> <dependency>     <groupId>org.slf4j</groupId>     <artifactId>jcl-over-slf4j</artifactId>     <version>${slf4j}</version>     <scope>runtime</scope> </dependency> <!-- slf4j config end -->

slf4j-api : Slf4j的核心包,只有日志的接口,并没有实现。
jcl-over-slf4j : 桥接器,将JCL的日志输出重定向到Slf4j中。

3、配置 log4j2 需要的依赖:(选用“2.17.0”版本)

<!-- log4j2 config start --> <dependency>     <groupId>org.apache.logging.log4j</groupId>     <artifactId>log4j-core</artifactId>     <version>${log4j2}</version>     <scope>runtime</scope> </dependency> <dependency>     <groupId>org.apache.logging.log4j</groupId>     <artifactId>log4j-web</artifactId>     <version>${log4j2}</version>     <scope>runtime</scope> </dependency> <dependency>     <groupId>org.apache.logging.log4j</groupId>     <artifactId>log4j-api</artifactId>     <version>${log4j2}</version>     <scope>runtime</scope> </dependency> <dependency>     <groupId>org.apache.logging.log4j</groupId>     <artifactId>log4j-slf4j-impl</artifactId>     <version>${log4j2}</version>     <scope>runtime</scope> </dependency> <!-- log4j2 config end -->

log4j-slf4j-impl : 将log4j2 和 slf4j进行绑定。

编写Log4j2 日志配置文件

1、配置文件格式及读取优先级

Log4j2 配置文件后缀要求为".xml"、".json"或者".jsn"。

系统选择配置文件的优先级为(从先到后):

(1) classpath下的名为log4j2-test.json 或者log4j2-test.jsn的文件。
(2) classpath下的名为log4j2-test.xml的文件。
(3) classpath下名为log4j2.json 或者log4j2.jsn的文件。
(4) classpath下名为log4j2.xml的文件。
(5) 如果classpath下没有相关配置文件,则使用默认日志系统。

注意:在maven项目中,配置文件是放在resources目录下。

2、详细配置文件解析

日志的级别: ALL< Trace < DEBUG < INFO < WARN < ERROR < FATAL < OFF。

  • Properties 模块 : 配置一些全局的属性值。
  • Appenders 模块 :日志输出相关配置。
  • Loggers 模块 : 只有定义了Logger并根据Appender的name属性引入其中,Appender才会生效。

log4j2.xml示例:

 

测试:

import org.slf4j.Logger; import org.slf4j.LoggerFactory; private static final Logger logger = LoggerFactory.getLogger(Test.class);   .... logger.info("fastjson parse error, the json msg is {}", tempStr);  

 

推荐这些技术文章:

关于spring整合mybatis

第一步导入依赖
<dependencies> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.5.7<...

MyBatisPlus的代码生成器模板(IDEA+MAVEN)

与MBG的区别
MyBatis 的代码生成器可生成: 实体类、Mapper 接口、Mapper 映射文件
MP 的代码生成器可生成: 实体类(可以选择是否支持 AR)、Mapper 接口、Mapper 映射文件、 Service 层、Controller 层.
相比MBG,MP只需要进行纯Java代码的编写即可生成代码

MP生成器步骤
注:此处使用的是2.3版本的mybatis-plus,My...

springboot项目整合mybatis

记录创建springboot项目并配置mybatis中间件:
资源准备及版本说明

编程工具:IDEA
JDK版本:1.8
Maven版本:Apache Maven 3.6.3
springboot版本:2.4.4
mybatis版本:1.3.2
mysql版本:5.1.48

创建mavem项目
通过IDEA创建很便捷,参考《IDEA创建SpirngBoot项目》。
配置pom.xml
使用m...

Maven的relativePath

浅谈Maven的relativePath
https://blog.csdn.net/zysh888/article/details/105089895
 

Maven学习总结(55)——pom.xml 中 relativePath 属性的作用
https://zhanghaiyang.blog.csdn.net/article/details/121510375
 
Ma...

关于mybatis的应用

导入依赖
<dependencies> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.4.5</version> &l...

springboot项目整合druid数据库连接池

Druid连接池是阿里巴巴开源的数据库连接池项目,后来贡献给Apache开源;
Druid的作用是负责分配、管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而不是再重新建立一个;
Druid连接池内置强大的监控功能,其中的StatFilter功能,能采集非常完备的连接池执行信息,方便进行监控,而监控特性不影响性能。
Druid连接池内置了一个监控页面,提供了非常完备的监控信息,...

IDEA搭建SSM项目并实现简单案例,步骤超详细

前言
最近手头上没啥活儿,就想用IDEA搭建一个SSM项目,结果发现不百度根本搭不出来,就算是搭建好了也是有很多问题,为了以后方便上手,在此一步一步记录一下。
一、搭建SSM框架
【File】-->【New】-->【Project】

选择左侧【Maven】,在【Create from archetype】前面打【√】,选择【org.apache.maven.archetype:ma...

【解决问题】Springboot项目Maven打包报错:Failed to execute goal org.apache.maven.plugins:maven-resources-plugin:3.2.0:resources

今天新建一个前端demo项目,需要引入thymeleaf依赖,项目运行和测试都正常,但是打包的时候却报以下错误:
D:\Server\Java\jdk1.8.0_231\bin\java.exe -Dmaven.multiModuleProjectDirectory=E:\Private\homework-parent\template-layui -Dmaven.home=E:\Tools\M...

zuul整合ratelimit实现限流

正常调用结果

 
 触发限流后提示

父类pom

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
...

ssm框架整合的基础配置文件

1、pome.xml:添加基础的依赖以及处理配置文件的依赖注释问题

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
...

文章标题:「Spring整合组件」日志框架
文章链接:https://www.dianjilingqu.com/2870.html
本文章来源于网络,版权归原作者所有,如果本站文章侵犯了您的权益,请联系我们删除,联系邮箱:saisai#email.cn,感谢支持理解。
THE END
< <上一篇
下一篇>>