`

<黑马程序员> Java Log4j

阅读更多
<a href="http://www.163.com">网易</a>

------- android培训、java培训、期待与您交流! ---------- Logger 1、logging.Logger 基本描述: Logger对象,从类名可知,其作用是给系统或者应用组件记录信息。 每一个Logger对象都有名字,可以是任意字符串,但名字一般基于被记录组件的包名或类名,如 java.net 或 javax.swing。此外,可以创建“匿名”的 Logger,其名称未存储在 Logger 命名空间中。 —————————————————————————————————— 可通过调用某个 getLogger 工厂方法来获得 Logger 对象。这些方法要么创建一个新 Logger,要么返回一个合适的现有 Logger。 —————————————————————————————————— 日志信息会被转发给通过setHandler()注册到Logger对象上的Handler对象,Handler再将日志信息转发给多种设备:控制台,文件,OS log等 每一个Logger跟踪父Logger,比如:创建一个日志名a.b.c.d,又创建一个日志a.b,没有创建日志a.b.c,那么a.b.c.d的父Logger是名字为a.b的Logger —————————————————————————————————— 每一个Logger有一个Level,影响Logger对象处理哪些层次的日志信息,如果日志请求的level比log level低,那么日志信息不被显示。称为cheap test。 Logger的级别全部定义在java.util.logging.Level里面: 各级别按序排列如下: SEVERE(最高值) WARNING INFO CONFIG FINE FINER FINEST(最低值) 此外,还有级别OFF用来关闭日志记录,ALL用来启用所有消息的日志记录 Logger的默认级别是INFO,比INFO低的日志将不显示,即使通过设定level也无济于事,Logger的默认级别定义在jre/ lib/logging.properties: # Limit the message that are printed on the console to INFO and above. java.util.logging.ConsoleHandler.level = INFO 如果log level 等于null,那么level等于父Logger的level。log level 能够通过properties配置文件来设置,当然,log level也可以通过调用setLevle()方法来动态改变。 如果通过了cheap test,说明日志信息能够被输出,那么用什么来描述日志信息呢?LogRecord!当然,Logger还会调用Filter(如果存在)过滤日志信息。通过的日志信息会被转发给Handler,日志信息也会转发给父Logger的Handler。 创建Logger对象: static Logger getLogger(String name) static Logger getLogger(String name, String resourceBundleName) 创建Logger对象,如果已经存在名为name的Logger对象,则返回该对象,同一个名称的Logger只有一个 Logger的成员方法: log()系列方法:记录日志信息 logp()系列方法:更精确的记录日志信息 便捷方法:记录相应Level的日志信息 severe(String msg):Log a SEVERE message warning(String msg):Log a WARNING message info(String msg):Log an INFO message config(String msg):Log a CONFIG message fine(String msg) :Log a FINE message finer(String msg):Log a FINER message finest(String msg):Log a FINEST message getName():获取日志的名字 getParent():获取父Logger对象 getLevel():获取日志的级别 getHandlers:获取和日志关联的Handler setLevel():设定日志的级别 setParent():设定父Logger对象 setFilter():设定Filter 2、logging.Handler Handler是做什么的?Handler 对象从 Logger 中获取日志信息,并将这些信息导出。例如,它可将这些信息写入控制台或文件中,也可以将这些信息发送到网络日志服务中,或将其转发到操作系统日志中。 可通过执行 setLevel(Level.OFF) 来禁用 Handler,并可通过执行适当级别的 setLevel 来重新启用。 Handler 类通常使用 LogManager 属性来设置 Handler 的 Filter、Formatter 和 Level 的默认值。实际上Handler需要为设置Level,Filter,Formatter负责 Handler的class family: java.util.logging.Handler |--java.util.logging.MemoryHandler |--java.util.logging.StreamHandler |--java.util.logging.ConsoleHandler |--java.util.logging.FileHandler |--java.util.logging.SocketHandler 查看日志文件: 默认的日志方式是XML格式,通过Formatter来自定义格式 Handler的成员方法: getLevel():获取Handler的Level getFormatter():获取Handler的Formatter getFilter():获取Handler的Filter setLevel(): setFormatter(): setFilter(): 3、logging.Formatter Formatter 为格式化 LogRecords 提供支持。 一般来说,每个日志记录的Handler 都有关联的 Formatter。Formatter 接受 LogRecord,并将它转换为一个字符串。 Formatter的class family: java.util.logging.Formatter |--java.util.logging.SimpleFormatter |--java.util.logging.XMLFormatter 4、logging.LogRecord LogRecord 对象用于在日志框架和单个日志 Handler 之间传递日志请求。 LogRecord(Level level, String msg) :用给定级别和消息值构造 LogRecord 5、JDK自带的logging.properties文件 参考:logging.properties
分享到:
评论

相关推荐

    使用Slf4j集成Log4j2构建项目日志系统的完美解决方案.docx

    &lt;artifactId&gt;log4j-slf4j-impl&lt;/artifactId&gt; &lt;version&gt;2.4.1&lt;/version&gt; &lt;/dependency&gt; 使用Slf4j集成Log4j2可以构建高性能、高可靠性的日志系统。Slf4j提供了统一的日志接口,使得用户可以选择不同的日志实现。...

    log4j中配置日志文件相对路径方法(PDF)

    &lt;param-name&gt;log4j&lt;/param-name&gt; &lt;param-value&gt;/WEB-INF/log4j.properties&lt;/param-value&gt; &lt;/init-param&gt; &lt;load-on-startup&gt;1&lt;/load-on-startup&gt; &lt;/servlet&gt; ``` #### 总结 通过以上三种方法,我们可以有效地...

    tomcat9 slf4j+log4j2 写日志.zip

    &lt;artifactId&gt;log4j-slf4j-impl&lt;/artifactId&gt; &lt;version&gt;2.x.x&lt;/version&gt; &lt;/dependency&gt; &lt;/dependencies&gt; ``` 2. **配置Log4j2**:Tomcat 9允许你在`$CATALINA_BASE/conf`目录下创建`log4j2.xml`文件来定制日志...

    log4jappender配置kafka使用的jar包

    在Java日志处理框架Log4j中,Appender是用于定义日志输出目的地的重要组件。当我们需要将日志数据发送到Apache Kafka这种分布式消息系统时,就需要配置一个特定的Appender,即Log4jKafkaAppender。这个Appender允许...

    Log4j2学习log4j2.xml配置模板

    &lt;artifactId&gt;spring-boot-starter-log4j2&lt;/artifactId&gt; &lt;/dependency&gt; ``` Log4j2.xml 配置模板 下面是一个较为完整的 Log4j2.xml 配置模板: ```xml &lt;?xml version="1.0" encoding="UTF-8"?&gt; &lt;!--日志级别以及...

    log4j2.xml记录日志到到数据库

    &lt;groupId&gt;org.apache.logging.log4j&lt;/groupId&gt; &lt;artifactId&gt;log4j-api&lt;/artifactId&gt; &lt;version&gt;2.x.x&lt;/version&gt; &lt;/dependency&gt; &lt;dependency&gt; &lt;groupId&gt;org.apache.logging.log4j&lt;/groupId&gt; &lt;artifactId&gt;log4j-...

    Spring Boot使用Log4j2的实例代码

    &lt;artifactId&gt;spring-boot-starter-log4j2&lt;/artifactId&gt; &lt;/dependency&gt; &lt;dependency&gt; &lt;groupId&gt;org.apache.logging.log4j&lt;/groupId&gt; &lt;artifactId&gt;log4j-flume-ng&lt;/artifactId&gt; &lt;version&gt;2.6&lt;/version&gt; &lt;/...

    log4j+slf4j实现 log4j测试代码,log4j+slf4j实现 log4j测试代码

    &lt;groupId&gt;org.apache.logging.log4j&lt;/groupId&gt; &lt;artifactId&gt;log4j-api&lt;/artifactId&gt; &lt;version&gt;2.x.x&lt;/version&gt; &lt;/dependency&gt; &lt;dependency&gt; &lt;groupId&gt;org.apache.logging.log4j&lt;/groupId&gt; &lt;artifactId&gt;log4j-...

    java应用使用log4j将日志发送到Kafka

    &lt;groupId&gt;org.apache.logging.log4j&lt;/groupId&gt; &lt;artifactId&gt;log4j-api&lt;/artifactId&gt; &lt;version&gt;2.13.3&lt;/version&gt; &lt;/dependency&gt; &lt;dependency&gt; &lt;groupId&gt;org.apache.logging.log4j&lt;/groupId&gt; &lt;artifactId&gt;log4j...

    Slf4j+log4j2.docx

    SLF4J(Simple Logging Facade for Java)是Java的日志抽象层,它提供了一种标准的接口,允许用户在不修改代码的情况下更换不同的日志框架,如Log4j、Logback等。Log4j2是Log4j的升级版,提供了更优秀的性能和更多的...

    Java中Log4J

    &lt;groupId&gt;org.apache.logging.log4j&lt;/groupId&gt; &lt;artifactId&gt;log4j-api&lt;/artifactId&gt; &lt;version&gt;2.x.x&lt;/version&gt; &lt;/dependency&gt; &lt;dependency&gt; &lt;groupId&gt;org.apache.logging.log4j&lt;/groupId&gt; &lt;artifactId&gt;log4j-...

    log4j2在项目中的配置,对不同级别的日志进行不同文件的存储

    &lt;groupId&gt;org.apache.logging.log4j&lt;/groupId&gt; &lt;artifactId&gt;log4j-api&lt;/artifactId&gt; &lt;version&gt;2.x.x&lt;/version&gt; &lt;/dependency&gt; &lt;dependency&gt; &lt;groupId&gt;org.apache.logging.log4j&lt;/groupId&gt; &lt;artifactId&gt;log4j-...

    log4j配置发送邮件案例

    在IT行业中,日志记录是系统监控和故障排查的关键环节,而Log4j作为Java领域广泛应用的日志框架,提供了一种高效、灵活的方式来管理和记录应用的运行情况。本案例主要探讨的是如何通过Log4j配置,使其在特定错误级别...

    Java 日志记录 log4j 最简明教程

    &lt;groupId&gt;org.apache.logging.log4j&lt;/groupId&gt; &lt;artifactId&gt;log4j-api&lt;/artifactId&gt; &lt;version&gt;2.14.1&lt;/version&gt; &lt;/dependency&gt; &lt;dependency&gt; &lt;groupId&gt;org.apache.logging.log4j&lt;/groupId&gt; &lt;artifactId&gt;log4j-...

    Log4j2 web demo (log4j2 version 2.1)

    &lt;groupId&gt;org.apache.logging.log4j&lt;/groupId&gt; &lt;artifactId&gt;log4j-core&lt;/artifactId&gt; &lt;version&gt;2.1&lt;/version&gt; &lt;/dependency&gt; &lt;dependency&gt; &lt;groupId&gt;org.apache.logging.log4j&lt;/groupId&gt; &lt;artifactId&gt;log4j-api...

    Flume-ng在windows环境搭建并测试+log4j日志通过Flume输出到HDFS.docx

    &lt;artifactId&gt;log4j&lt;/artifactId&gt; &lt;version&gt;1.2.17&lt;/version&gt; &lt;/dependency&gt; &lt;dependency&gt; &lt;groupId&gt;org.apache.flume&lt;/groupId&gt; &lt;artifactId&gt;flume-ng-core&lt;/artifactId&gt; &lt;version&gt;1.5.0&lt;/version&gt; &lt;/...

    SpringBoot框架配置log4j和log4j2的配置代码

    Log4j和Log4j2是两种广泛使用的Java日志框架,它们提供了灵活的日志配置和高性能的日志处理能力。本文将详细介绍如何在SpringBoot项目中配置Log4j和Log4j2。 ### SpringBoot与Log4j Log4j是Apache的一个开源项目,...

    JavaEE slf4j转log4j的小示例

    &lt;artifactId&gt;log4j-slf4j-impl&lt;/artifactId&gt; &lt;version&gt;2.x.x&lt;/version&gt; &lt;/dependency&gt; &lt;/dependencies&gt; ``` - **配置Log4j**:在项目资源目录下创建`log4j.properties`或`log4j2.xml`文件,定义日志输出的配置...

    Log4j的相关资料

    Log4j的相关资料&lt;br&gt;其中包括个人积累收集的:&lt;br&gt;Log4j简明手册&lt;br&gt;log4j使用大全&lt;br&gt;深入学习log4j&lt;br&gt;关于Log4j比较全面的配置&lt;br&gt;Java logging API如何与log4j较量&lt;br&gt;在Java应用软件中加入logging&lt;br&gt;等许多...

    Springboot项目使用Slf4j将日志保存到本地目录的实现代码

    Slf4j 是一个 Java 日志记录门面,它提供了一个通用的日志记录API,允许开发者使用不同的日志记录框架,例如 Logback、Log4j 等。在 Springboot 项目中,Slf4j 是默认的日志记录框架。本文将介绍如何使用 Slf4j 将...

Global site tag (gtag.js) - Google Analytics