<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
分享到:
相关推荐
<artifactId>log4j-slf4j-impl</artifactId> <version>2.4.1</version> </dependency> 使用Slf4j集成Log4j2可以构建高性能、高可靠性的日志系统。Slf4j提供了统一的日志接口,使得用户可以选择不同的日志实现。...
<param-name>log4j</param-name> <param-value>/WEB-INF/log4j.properties</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> ``` #### 总结 通过以上三种方法,我们可以有效地...
<artifactId>log4j-slf4j-impl</artifactId> <version>2.x.x</version> </dependency> </dependencies> ``` 2. **配置Log4j2**:Tomcat 9允许你在`$CATALINA_BASE/conf`目录下创建`log4j2.xml`文件来定制日志...
在Java日志处理框架Log4j中,Appender是用于定义日志输出目的地的重要组件。当我们需要将日志数据发送到Apache Kafka这种分布式消息系统时,就需要配置一个特定的Appender,即Log4jKafkaAppender。这个Appender允许...
<artifactId>spring-boot-starter-log4j2</artifactId> </dependency> ``` Log4j2.xml 配置模板 下面是一个较为完整的 Log4j2.xml 配置模板: ```xml <?xml version="1.0" encoding="UTF-8"?> <!--日志级别以及...
<groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-api</artifactId> <version>2.x.x</version> </dependency> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-...
<artifactId>spring-boot-starter-log4j2</artifactId> </dependency> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-flume-ng</artifactId> <version>2.6</version> </...
<groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-api</artifactId> <version>2.x.x</version> </dependency> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-...
<groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-api</artifactId> <version>2.13.3</version> </dependency> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j...
SLF4J(Simple Logging Facade for Java)是Java的日志抽象层,它提供了一种标准的接口,允许用户在不修改代码的情况下更换不同的日志框架,如Log4j、Logback等。Log4j2是Log4j的升级版,提供了更优秀的性能和更多的...
<groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-api</artifactId> <version>2.x.x</version> </dependency> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-...
<groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-api</artifactId> <version>2.x.x</version> </dependency> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-...
在IT行业中,日志记录是系统监控和故障排查的关键环节,而Log4j作为Java领域广泛应用的日志框架,提供了一种高效、灵活的方式来管理和记录应用的运行情况。本案例主要探讨的是如何通过Log4j配置,使其在特定错误级别...
<groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-api</artifactId> <version>2.14.1</version> </dependency> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-...
<groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-core</artifactId> <version>2.1</version> </dependency> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-api...
<artifactId>log4j</artifactId> <version>1.2.17</version> </dependency> <dependency> <groupId>org.apache.flume</groupId> <artifactId>flume-ng-core</artifactId> <version>1.5.0</version> </...
Log4j和Log4j2是两种广泛使用的Java日志框架,它们提供了灵活的日志配置和高性能的日志处理能力。本文将详细介绍如何在SpringBoot项目中配置Log4j和Log4j2。 ### SpringBoot与Log4j Log4j是Apache的一个开源项目,...
<artifactId>log4j-slf4j-impl</artifactId> <version>2.x.x</version> </dependency> </dependencies> ``` - **配置Log4j**:在项目资源目录下创建`log4j.properties`或`log4j2.xml`文件,定义日志输出的配置...
Log4j的相关资料<br>其中包括个人积累收集的:<br>Log4j简明手册<br>log4j使用大全<br>深入学习log4j<br>关于Log4j比较全面的配置<br>Java logging API如何与log4j较量<br>在Java应用软件中加入logging<br>等许多...
Slf4j 是一个 Java 日志记录门面,它提供了一个通用的日志记录API,允许开发者使用不同的日志记录框架,例如 Logback、Log4j 等。在 Springboot 项目中,Slf4j 是默认的日志记录框架。本文将介绍如何使用 Slf4j 将...