我们知道,从jdk1.4开始,java中引入了自己的日志系统,但是绝大多数人还是继续用log4j,我很想一探究竟,因此,我花了点时间看jdk logger的源码,发现jdk自带的日志系统结构相当的清晰,主要涉及到3个类,一个是LogManager,这个类专门负责管理注册的logger的,和我们的日志配置文件属性。另外一个重要的类就是Logger了,这个类就是我们的日志类,这个类,主要记录了这个日志的处理器信息,也就是与它关联的Handle,最后一个重要的类就是Handle了,这个类是个抽象类,一个它的实现,可以被注册到具体的Logger对象里面,负责处理这个Logger的日志输出。
当然,jdk Logger中给了我们很多默认的实现,比如StreamHandler,这个处理类就对日志的输出有一定的规定,具体代码在publish方法里面,当然我们可以在它的基础上进行扩展,可以按照我们的自己的格式化输出,实现Formatter,当然,我们也可以不按照StreamHandler中的publish实现走,我们可以写自己的publish方法,直接继承Handle. 我觉得灵活性相当的大。当然,jdk logger已经为我们提供了4个Handle,可供选择,分别是:MemeryHandle,FileHandle,ConsoleHandle,InternalStreamHandle,SocketHandle.
而log4j,它的优点到底在什么地方,为什么会又这么多的人用它?
分享到:
相关推荐
首先,我们需要理解JDK日志的基本工作原理。JDK的日志API提供了一个简单的接口来记录日志消息,这些消息会被分等级,如SEVERE、WARNING、INFO、CONFIG、FINE、FINER 和 FINEST。开发者可以根据需要设置日志级别,...
对于希望深入理解并定制JDK日志框架的开发者来说,研究`LogConfig.xml`的配置以及`java.util.logging`的API是非常有必要的。这包括学习如何创建自定义的`Handler`、`Filter`和`Formatter`,以及如何通过代码动态调整...
JDK(Java Development Kit)自带了一个基础的日志框架,名为`java.util.logging`,它提供了灵活的日志处理机制。本篇将深入探讨如何利用JDK自带的日志包进行简单的日志应用。 首先,`java.util.logging.Logger`是...
JDK11安装包,JDK11安装包JDK11安装包,JDK11安装包JDK11安装包,JDK11安装包JDK11安装包,JDK11安装包JDK11安装包,JDK11安装包JDK11安装包,JDK11安装包JDK11安装包,JDK11安装包JDK11安装包,JDK11安装包JDK11...
jdk8帮助文档jdk8帮助文档jdk8帮助文档jdk8帮助文档jdk8帮助文档jdk8帮助文档jdk8帮助文档jdk8帮助文档jdk8帮助文档jdk8帮助文档jdk8帮助文档jdk8帮助文档jdk8帮助文档jdk8帮助文档jdk8帮助文档jdk8帮助文档jdk8帮助...
mac系统jdk1.8安装包!mac系统jdk1.8安装包!mac系统jdk1.8安装包!mac系统jdk1.8安装包!mac系统jdk1.8安装包!mac系统jdk1.8安装包!mac系统jdk1.8安装包!mac系统jdk1.8安装包!mac系统jdk1.8安装包!mac系统jdk...
JDK7安装包.zip\JDK7安装包.zip\JDK7安装包.zip\JDK7安装包.zip\JDK7安装包.zip JDK7安装包.zip\JDK7安装包.zip\JDK7安装包.zip\JDK7安装包.zip\JDK7安装包.zip JDK7安装包.zip\JDK7安装包.zip\JDK7安装包.zip\JDK7...
jdk7 jdk8 jdk9 jdk10 jdk11 jdk12 jdk13 jdk14 (win-64位) 资源共享
jdk7 jdk8 jdk9 jdk10 jdk11 jdk12 jdk13 jdk14 (linux-rpm 64位) 资源共享
7. **改进的日志API**:`java.util.logging`包提供了一个新的日志框架,使日志管理更加灵活和高效。 8. **改进的多线程**:添加了`ThreadLocal`类,为每个线程提供独立的变量副本,避免了数据竞争问题。 9. **国际...
jdk-11版本安装包、jdk-11版本安装包、jdk-11版本安装包 jdk-11版本安装包、jdk-11版本安装包、jdk-11版本安装包 jdk-11版本安装包、jdk-11版本安装包、jdk-11版本安装包 jdk-11版本安装包、jdk-11版本安装包、jdk-...
Windows JDK安装 包含 jdk8 jdk11 jdk17 jdk22 x64位安装包
JDK11、JDK11、JDK11、JDK11、JDK11、JDK11、JDK11、JDK11、JDK11、JDK11、JDK11、JDK11、JDK11、JDK11、JDK11、JDK11、JDK11、JDK11、JDK11、JDK11、JDK11、JDK11、JDK11、JDK11、JDK11、JDK11、JDK11、JDK11、JDK...
### Linux系统更换JDK与WebLogic服务器更换JDK详解 #### 一、概述 在Linux环境中,更换JDK(Java Development Kit)对于确保应用程序能够稳定运行至关重要。此外,如果使用了Oracle WebLogic Server作为应用服务器...
Mac 版本 jdk 11 Mac 版本 jdk 11 Mac 版本 jdk 11Mac 版本 jdk 11 Mac 版本 jdk 11 Mac 版本 jdk 11Mac 版本 jdk 11 Mac 版本 jdk 11 Mac 版本 jdk 11Mac 版本 jdk 11 Mac 版本 jdk 11 Mac 版本 jdk 11Mac 版本 jdk...
jdk1.8 jdk1.8 jdk1.8 jdk1.8 jdk1.8 jdk1.8 jdk1.8 jdk1.8
官网 jdk6,jdk7,jdk8,jdk9,jdk10 windox 32位、64位、linux 32位、64位 百度云。
jdk 内存设置 jdk 内存设置是 Java 开发中非常重要的一部分。它直接影响着 Java 应用程序的性能和稳定性。jdk 内存设置主要包括堆大小设置、垃圾收集器的选择和配置等几个方面。 堆大小设置是 jdk 内存设置的核心...
mac for jdk1.6 jdk6 安装版 里面有两个jdk1.6的安装包,都可以用 如果电脑上安装有1.7,1.8等高版本jdk就不要再下安装包了,安装包安装会报错 命令是这个:brew install java6或 brew install homebrew/cask-...
2. **检查日志文件**:查看Tomcat的日志文件(通常位于`logs`目录),查找有关JVM的信息。 3. **使用命令行工具**:可以在命令行输入`java -version`命令来检查当前被调用的JDK版本是否符合预期。 #### 五、总结 ...