1.常见的日志框架
日志框架 | 介绍 |
jul(java.util.logging) | jdk1.4加入,为了对抗log4j,效率灵活性较差使用较少 |
log4j | 最广泛应用的日志框架,成为事实上的标准 |
logback | 基于slf4j-api接口实现,性能高于log4j |
log4j2 | 重写了log4j,性能高于log4j,logback |
注:log4j、logback、log4j2是同一个作者Ceki Gülcü
上面介绍了四种日志框架,到底用哪个日志框架,现在广泛应用的还是log4j,如果负载较高可以考虑使用logback和log4j2.
但是如果两个系统相互依赖,用的不同的日志框架,难道需要依赖两个日志框架么?
Apache和log4j的作者提供两种选择,JCL(commings-log)和SLF4J(simple log facade for java)两个日志框架的门面。提供了统一的日志抽象接口,适配和转接了各种日志框架,使用者只用调用抽象层统一的接口就行了。应用层不直接依赖实际的日志实现。
2.日志门面JCL和SLF4J
日志门面 | 介绍 |
JCL(commings-log) | Apache提供的comming-log |
SLF4J(simple log facade for java) | Log4j、Logback、Log4j2作者提供 |
3.日志体系各种包总结
日志框架 | 包 |
log4j | 只有log4j |
log4j2 |
log4j-api(日志接口)
log4j-core(log4j-api的实现)
|
logback |
logback-core(logback核心包)
logback-classic(slf4j-api的实现)
|
commons-logging |
commons-logging (jcl)
log4j-jcl(commons-logging到log4j的桥梁)
jcl-over-slf4j(commons-logging到slf4j的桥梁)
|
slf4j |
slf4j转向某个实际日志框架:
slf4j-jdk14:slf4j到jdk-logging的桥梁
slf4j-log4j12:slf4j到log4j1的桥梁
log4j-slf4j-impl:slf4j到log4j2的桥梁
logback-classic:slf4j到logback的桥梁
slf4j-jcl:slf4j到commons-logging的桥梁
某个实际日志框架转向slf4j:
jul-to-slf4j:jdk-logging到slf4j的桥梁
log4j-over-slf4j:log4j1到slf4j的桥梁
jcl-over-slf4j:commons-logging到slf4j的桥梁
|
4.集成实践
4.1 jcl与日志框架的集成
集成的框架 | 需要的包 |
jul |
commons-logging
jul
|
log4j |
commons-logging
log4j1
|
log4j2 |
commons-logging
log4j-api (log4j2的API包)
log4j-core (log4j2的API实现包)
log4j-jcl (log4j2与commons-logging的集成包)
|
logback |
jcl-over-slf4j (替代了commons-logging)
slf4j-api
logback-core
logback-classic
logback本身的使用其实就和slf4j绑定了起来,现在要想指定commons-logging的底层log实现是logback,则需要2步走
|
4.2 slf4j与日志框架的继承
集成的框架 | 需要的包 |
jul |
slf4j-api
slf4j-jdk14
|
log4j |
slf4j-api
slf4j-log4j12
log4j
|
log4j2 |
slf4j-api
log4j-api
log4j-core
log4j-slf4j-impl (用于log4j2与slf4j集成)
|
logback |
slf4j-api
logback-core
logback-classic(已含有对slf4j的集成包)
|
相关推荐
本文将对Java日志系统相关的工具进行详细梳理,包括主要的实现工具、绑定工具以及转换桥接器。 首先,我们来看Java内置的日志系统——`java.util.logging`(简称`jul`)。这是Java标准库提供的日志框架,它提供基本...
关于java程序员发展需要学习的路线整理集合 技术 应用技术 计算机基础知识 cpu mem disk net 线程,进程 第三方库 poi Jsoup zxing Gson 数据结构 树 栈 链表 队列 图 操作系统 linux 代码控制...
13、工作周报:各部门负责人可每周对部门工作进行汇报,填写相关信息,以便及时梳理工作,反馈问题,及时解决。同时,系统会存储历史记录。 14、通讯录:用户可填写同事好友的通讯方式,拥有自己的通讯录。可方便...
**Java产品管理系统** Java产品管理系统是一款基于Java技术开发的实用型软件系统,旨在为企业或组织提供全面的产品管理解决方案。这个项目不仅提供了完整的源代码,还包含详细的项目文档,非常适合程序员学习和参考...
搜索引擎如ElasticSearch和Solr,以及分布式和微服务相关技术(服务发现/注册、网关、服务调用、熔断/降级、配置中心、认证鉴权、分布式事务、任务调度、链路追踪和监控、日志分析和监控)也是必备技能。 最后,...
根据提供的文件内容片段,可以梳理出以下Java架构设计相关的知识点: 1. Java基础知识与Web技术 - Java是开发各种应用程序的基础,包括但不限于桌面应用、企业级应用、移动应用等。 - AJAX(Asynchronous ...
- 论文:涵盖了整个Java ASP Web系统的基础知识,设计意图、需求概述、系统结构与设计哲学、相关技术的深入探索等。学生可以从论文中理解项目的全局构想和关键设计决策。 - 设计文档:详细梳理了系统的构建过程,...
### 项目基础设施 #### WEB 容器 - **Tomcat**: 框架。Tomcat 是一个免费开源的Servlet容器,被广泛应用于中小型系统和开发环境中。...Hutool 是一个Java工具包,旨在简化Java开发人员的日常工作。
在这段代码中,使用Linux下的相关库函数来访问硬盘设备(如`/dev/sda`),调用系统调用`ioctl()`来获取硬盘序列号。 - 这段C代码应包含对错误处理的考虑,例如在打开设备文件失败或无法获取序列号时应返回相应的...
### Java面试评价表知识点梳理 #### 一、Java基础知识 - **语法基础**:考查面试者对于Java语言的基础语法掌握程度,例如变量声明、数据类型转换、运算符使用等。 - **算法基础**:评估面试者对常见算法的理解,...
《基于JAVA的文件加密传输系统的设计与实现》一文通过详细的技术分析和需求梳理,展示了一个实用性强且安全可靠的文件传输系统设计方案。该系统不仅满足了用户对于文件加密传输的基本需求,还加入了即时消息交流功能...
根据提供的文件信息,以下是关于Java基础教程的知识点梳理: 1. Java语言的起源与发展:Java语言是由Sun Microsystems公司于1995年发布的,由James Gosling领导的小组开发。Java语言的早期代号为“Oak”,后来被...
《基于Java的卡拉OK管理系统设计与实现》 这篇毕业论文主要探讨了如何使用Java编程语言设计并实现一个卡拉OK管理系统。Java作为一种广泛应用于企业级应用开发的语言,具有平台无关性、面向对象、安全稳定等特性,使...
本系统采用Java编程语言进行开发,符合毕业设计的要求,具备基于角色的访问控制(RBAC)机制,确保数据安全和操作权限的合理分配。 系统的核心功能可以分为管理员、学工处老师、辅导员和学生四大类: 1. **管理员...
### 基于Java的办公自动化管理系统的设计与实现 #### 一、引言 随着信息技术的飞速发展,办公自动化已成为提升工作效率、优化工作流程的关键手段之一。在众多开发语言中,Java以其跨平台性、安全性及丰富的类库...
- **日志系统**:如Log4j或Logback用于记录系统运行日志,方便调试和问题排查。 - **开发工具**:Postman用于测试RESTful API,数据库管理工具如MySQL Workbench用于数据库操作。 总的来说,这个CMS管理系统项目...
2. **配置环境变量**:为了方便在命令行中执行Java相关的命令,需要配置系统环境变量中的`JAVA_HOME`、`PATH`和`CLASSPATH`等变量。 3. **集成开发环境(IDE)的选择**:常用的Java IDE有Eclipse、IntelliJ IDEA等,...
总而言之,这份“Java学习笔记”通过总结和梳理Java编程语言的基础知识、数据库操作、Web开发技术、Spring框架以及Linux命令,为学习者提供了一个全面而系统的学习路径,有助于学习者快速构建起扎实的Java开发能力。...
根据提供的文件信息,我们可以梳理出一系列与Java相关的知识点。这些知识点涵盖了从基本概念到高级特性,旨在帮助读者更好地理解和掌握Java编程语言。 ### Java基础知识 #### 1. Java概述及应用领域 - Java是一种...