当前位置: 首页 > news >正文

重庆招标信息网官网查询企业排名优化公司

重庆招标信息网官网查询,企业排名优化公司,牡丹江网路运营中心,中国域名管理中心文章目录 背景SLF4J - 简单日志门面:Log4j - 强大而古老的日志框架:Log4j2 - Log4j的升级版:Logback - Log4j的继任者:比较Springboot集成slf4j、log4j2参考 背景 在Java开发中,日志记录是一个不可或缺的组成部分。为了满足不同的需求,Java社区涌现出多…

文章目录

    • 背景
    • SLF4J - 简单日志门面:
    • Log4j - 强大而古老的日志框架:
    • Log4j2 - Log4j的升级版:
    • Logback - Log4j的继任者:
    • 比较
    • Springboot集成slf4j、log4j2
    • 参考

背景

在Java开发中,日志记录是一个不可或缺的组成部分。为了满足不同的需求,Java社区涌现出多个日志框架,其中包括SLF4J、Log4j、Log4j2和Logback。本文将比较这些框架,以及为什么在项目中选择使用它们。

SLF4J - 简单日志门面:

SLF4J 是一个为Java提供简单日志的门面。它并不是一个具体的日志实现,而是提供了一个通用的API,允许开发者选择底层的日志框架。下面是一个简单的SLF4J使用示例:

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;public class SLF4JExample {private static final Logger logger = LoggerFactory.getLogger(SLF4JExample.class);public static void main(String[] args) {logger.info("Hello, SLF4J!");}
}

slf4j不是一个真正意义的可用应用程序,他是一个接口层
就像java 的接口性质一样,单纯集成了slf4j 的话,执行比如log.info log.debug等方法,只能在控制台打印日志,并不会在持久化到文件,或者其他自定义介质上,slf4j至少需要一个实现层框架,比如log4j,logback等

Log4j - 强大而古老的日志框架:

Log4j 是Java社区中最早的日志框架之一,提供了丰富的功能,包括异步日志、插件支持等。下面是一个Log4j的使用示例:

import org.apache.log4j.Logger;public class Log4jExample {private static final Logger logger = Logger.getLogger(Log4jExample.class);public static void main(String[] args) {logger.info("Hello, Log4j!");}
}

Log4j2 - Log4j的升级版:

Log4j2 是 Log4j 的升级版,解决了 Log4j 1.x 存在的性能和线程安全问题。它引入了新的特性,如异步日志、插件体系结构等。以下是一个Log4j2的使用示例:

import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;public class Log4j2Example {private static final Logger logger = LogManager.getLogger(Log4j2Example.class);public static void main(String[] args) {logger.info("Hello, Log4j2!");}
}

Logback - Log4j的继任者:

Logback 是由 Log4j 的创始人开发的日志框架,旨在成为 Log4j 的继任者。它具有与 Log4j 相似的功能,并被认为是更现代和性能更好的选择。以下是一个Logback的使用示例:

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;public class LogbackExample {private static final Logger logger = LoggerFactory.getLogger(LogbackExample.class);public static void main(String[] args) {logger.info("Hello, Logback!");}
}

比较

slf4j,log4j,log4j2,logback 时间线:log4j ->slf4j ->logback ->log4j2
在这里插入图片描述

  • SLF4J 是一个日志门面,它允许在不修改应用代码的情况下切换不同的日志实现。一般与具体的实现框架(如Logback或Log4j2)一起使用。

  • Log4j 是一个功能强大而古老的日志框架,提供了许多高级功能。然而,由于其1.x版本存在一些问题,现在更推荐使用 Log4j2。

  • Log4j2 是 Log4j 的升级版,解决了旧版本的一些问题,性能更好,并引入了新特性。在现代项目中,是一个不错的选择。

  • Logback 是由 Log4j 的创始人开发的日志框架,旨在成为 Log4j 的继任者。它具有较好的性能和一些新特性,是一个流行的选择。

在选择日志框架时,考虑项目需求、性能、易用性和社区支持等因素是很重要的。大多数现代Java应用程序选择使用 SLF4J 作为日志门面,结合 Logback 或 Log4j2 作为底层实现,以提供较好的性能和灵活性。

Springboot集成slf4j、log4j2

Spring Boot默认使用SLF4J作为日志门面,并且通过classpath中的依赖关系,Log4j2会被自动识别并成为默认的日志实现。下面是一个简单的示例:

1、添加依赖:

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-log4j2</artifactId>
</dependency>

2、创建Log4j2配置文件:
在src/main/resources目录下创建一个名为log4j2.xml的文件,用于配置Log4j2。以下是一个简单的配置示例:

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="INFO"><Appenders><Console name="Console" target="SYSTEM_OUT"><PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/></Console></Appenders><Loggers><Root level="info"><AppenderRef ref="Console"/></Root></Loggers>
</Configuration>

也可以不配置xml文件,使用 application.properties

logging.file.path=./logs
logging.level.root=info
logging.file.name=./logs/app.log

3、编写Spring Boot应用程序:
创建一个简单的Spring Boot应用程序,使用SLF4J进行日志记录。例如,创建一个HelloController:

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;@RestController
public class HelloController {private static final Logger logger = LoggerFactory.getLogger(HelloController.class);@GetMapping("/hello")public String hello() {logger.info("你好啊,我是log4j");return "Hello, world!";}
}

可以看到命令行打印出来了
在这里插入图片描述
由于我们在 application.properties 配置了日志的路径,所以在这个路径下也保存了一份日志,你也可以将日志保存到数据库或者其他地方
在这里插入图片描述

参考

https://blog.csdn.net/madness1010/article/details/128332275

http://www.yayakq.cn/news/694699/

相关文章:

  • 任丘网站优化免费建站有哪些网站
  • 做响应式网站的微博号html5怎么做二手网站
  • 临汾网站建设企业网络营销成功案例
  • 网站开发与设计开题报告wordpress固定链接403
  • 专门做游轮的网站excel网站做链接
  • 上海省住房与城乡建设厅网站环境艺术设计最好的大学
  • 创造与魔法官方网站做自己挑号网站后台怎么更新
  • 如何做网站建设方案网站留言板有什么用
  • 山西网站建设费用手机wap网站html源码
  • 免费网站建设seo湖南做网站 f磐石网络
  • 广州做地铁的公司网站没有货源如何做电商
  • 专门做房产的网站做淘客的网站有哪些
  • 上海政务服务网搜索seo
  • 怎么介绍自己的网站建设网站设计与编辑
  • 可以做积分的网站怎么创作一个软件
  • 百度网站优化 件wordpress本地评论插件
  • 做venn图的网站常见的推广方式有哪些
  • 做早餐烧菜有什么网站给军方做网站套模板行不行
  • 汽车建设网站的能力网站建设购物车
  • 四平做网站佳业首页北京通州做网站
  • 网站策划编辑招聘重庆企业网站推广代理
  • 石家庄做网站设计怎样做论坛网站
  • 为什么企业建设银行网站打不开数字广东网络建设公司
  • 个人网站-个人主页作业网络服务商名称
  • 凉山彝族自治州网站建站南宁市视点网络信息有限公司
  • 烟台市建设工程交易中心网站旅游网站建设的总结
  • 湘潭学校网站建设 磐石网络8步快速搭建个人网站视频
  • 网站建设实训心得教育海报设计素材网站
  • 织梦修改网站后备份wordpress 做思维导图
  • 温州市建设厅网站首页制作一个网站需要哪些步骤