Springboot日志基础
Springboot配置日志配置文件位置
logging.config: classpath:logging/logback.yml
Springboot日志分类
log4j: 是apache实现的一个开源日志组件
logback: 同样是由log4j的作者设计完成的,拥有更好的特性,用来取代log4j的一个日志框架,是slf4j的原生实现
log4j2: 是log4j 1.x和logback的改进版,采用了一些新技术(无锁异步、等等),使得日志的吞吐量、性能比log4j 1.x提高10倍,并解决了一些死锁的bug,而且配置更加简单灵活
slf4j+log4j和直接用log4j的区别
slf4j是对所有日志框架制定的一种规范、标准、接口,并不是一个框架的具体的实现,因为接口并不能独立使用,需要和具体的日志框架实现配合使用(如log4j、logback),使用接口的好处是当项目需要更换日志框架的时候,只需要更换jar和配置,不需要更改相关java代码。
import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class TestSlf4j { //Logger和LoggerFactory导入的是org.slf4j包 private final static Logger logger = LoggerFactory.getLogger(TestSlf4j.class); }
log4j、logback、log4j2都是一种日志具体实现框架,所以既可以单独使用也可以结合slf4j一起搭配使用
import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; public class TestLog4j { // Logger和LogManager导入的是org.apache.logging包 private static final Logger LOG = LogManager.getLogger(TestLog4j.class); }
导入需要使用的jar包(slf4j+log4j2)
log4j2
如项目中有导入spring-boot-starter-web依赖包记得去掉spring自带的日志依赖spring-boot-starter-logging
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <exclusions> <exclusion> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-logging</artifactId> </exclusion> </exclusions> </dependency>
springboot项目中需导入log4j2
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-log4j2</artifactId> </dependency>
如果要使用log4j,则把log4j2的坐标替换为下面的这个,依然要排除原有的spring-boot-starter-logging。
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-log4j</artifactId> <version>1.3.8.RELEASE</version> </dependency>
Java引入log4j配置文件
class ImportConfig{ public static void main(String[] args) throws IOException { File file = new File(log4j2); BufferedInputStream in = new BufferedInputStream(new FileInputStream(file)); final ConfigurationSource source = new ConfigurationSource(in); Configurator.initialize(null, source); Logger logger = LogManager.getLogger("myLogger"); } }
Springboot整合zookeeper log4j2
<dependency> <groupId>org.apache.zookeeper</groupId> <artifactId>zookeeper</artifactId> <version>3.4.14</version> <exclusions> <exclusion> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> </exclusion> <exclusion> <groupId>log4j</groupId> <artifactId>log4j</artifactId> </exclusion> </exclusions> </dependency>

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
如何学Java,我说点不太一样的学习方式
如何学Java,我说点不太一样的学习方式 首先声明,这篇文章不是卖课程、介绍培训班的广告。 最近有不少读者通过微信问我:小白应该怎么学好 Java? 提问的人里有在校大学生、有刚参加工作的、有想转行做程序员的,还有一部分是最近找工作不顺的。 现在行情不好,很多人都焦虑,但是光跟着焦虑不解决问题。作为程序员,还不如静下心来,少受干扰,专心提高自己。 继续说回到学 Java 这个问题上来,网上 95% 以上的文章都是说介绍学习路线、Java书籍和视频的。 学习路线无非就是: Java:语法、面向对象、IO、集合、异常、多线程……Java WEB:Tomcat、servlet、Struts、Spring……持久化相关:MySQL、Hibernate、MyBatis………………书籍、视频说的比较多的有: 《Head First Java》、《Java 编程思想》、《Effective Java》……毕向东、刘意等老师的视频。Java 家族成员太多,学个 Java 怎么要学这么多东西? 学习资料越收集越多,这要学到什么年头?很多人都是收藏从未停止,学习从未开始。 我今天就和大家说点不一样的,我学...
- 下一篇
Springboot配置log4j2爬坑
Version Springboot 2.11.1 logging.config参数 logging.config 配置在application.yml中有效,指定路径有效 log4j2 log4j2官网支持多种自动配置方式,自动扫描: 系统属性(Log4j.configuration) -> classpath中的(log4j2-test.properties)-> classpath中的(log4j2-test.yml/yaml/json/jsn/xml) -> classpath中的(log4j2.yml/yaml/json/jsn/xml) -> 默认配置 Log4j获取ConfigurationFactory // 按照测试前缀log4j2-test 和 LoggerContext上下文实例获取ConfigurationFactory Configuration config = getConfiguration(loggerContext, true, name); if (config == null) { // 按照测试前缀log4j2-test...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Docker安装Oracle12C,快速搭建Oracle学习环境
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- SpringBoot2全家桶,快速入门学习开发网站教程
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- 设置Eclipse缩进为4个空格,增强代码规范
- MySQL8.0.19开启GTID主从同步CentOS8