Log4j有三个主要组件,
loggers, appenders and layouts. 三个类型的组件通过message type and level 相关协调可以让开发者记录log messages.
Logger层
对于logging api超越普通的System.out.println首先也就是最重要的好处他能够禁用某些日志语句,同时允许其他人可以正常print.这种能力假设为loggin space.也就说是所以可能的logging statement的space,是根据一些开发者选择的标准进行分类.这一观察使得我们选择类别作以包的中心开概念.然而,在log4j version1.2,Logger class取代了Category class.对于那些熟悉log4j早期版本,Logger类可以被视为仅仅是Category类的一个别名.
Loggers被称为实体,Loggers名字区别大小写,他们遵循的是分层的命名规则
Nameing hierarchy
如果一个logger的名字由一个dot后代作为logger名称的前缀,那么会被认为是另一个logger的祖先,如果本身和后代logger之间没有始祖.如果本身和后代logger之间没有始祖.一个logger是另一个child logger的parent,
例如,"com.foo" logger是"com.foo.Bar"logger的parent,类似 "java"是"java.util"parent,是"java.util.Vector"的祖先.
这个命名方式为大多数开发者所熟悉.
root logger位于logger hierarchy的最项层,以下两方面比较特殊.
1.一直存在.
2.不能通过名字检索.
调用logger.getRootLogger方法可以取得.所有其他的loggers通过Logger.getLogger方法进行实例化.方法需要一个logger名称作为参数.以下是Logger class 的一些基础方法.
package org.apache.log4j;
public class Logger {
// Creation & retrieval methods:
public static Logger getRootLogger();
public static Logger getLogger(String name);
// printing methods:
public void trace(Object message);
public void debug(Object message);
public void info(Object message);
public void warn(Object message);
public void error(Object message);
public void fatal(Object message);
// generic printing method:
public void log(Level l, Object message);
}
Loggers可以指定levels
TRACE,
DEBUG,
INFO,
WARN,
ERROR and FATAL
这些定义在org.apache.log4j.Level class中.可以自定义 Level class的sub-classing.
如果一个logger没有指定level,更正式的说,他会从离他最近白ancestor继承 level.
Level Inheritance
一个logger c的继承level等于logger hierarchy中第一个非null level,在C开始,并在hierarchy里向着root logger进行处理
确保所有loggers可以继承一个level,root总会指定一个level.
Basic Selection Rule
如果p >= q.,那么是执行logger level q 中一个log请求level为p(指定或是继承,以适用者为准).
此规则是log4j的核心,假设level是有序的,对于标准level,DEBUG < INFO < WARN < ERROR < FATAL.
以下是这个规则的例子.
// get a logger instance named "com.foo"
Logger logger = Logger.getLogger("com.foo");
// Now set its level. Normally you do not need to set the
// level of a logger programmatically. This is usually done
// in configuration files.
logger.setLevel(Level.INFO);
Logger barlogger = Logger.getLogger("com.foo.Bar");
// This request is enabled, because WARN >= INFO.
logger.warn("Low fuel level.");
// This request is disabled, because DEBUG < INFO.
logger.debug("Starting search for nearest gas station.");
// The logger instance barlogger, named "com.foo.Bar",
// will inherit its level from the logger named
// "com.foo" Thus, the following request is enabled
// because INFO >= INFO.
barlogger.info("Located nearest gas station.");
// This request is disabled, because DEBUG < INFO.
barlogger.debug("Exiting gas station search");
分享到:
相关推荐
四、log4j2.xml配置 配置文件log4j2.xml是Log4j 2的核心,它定义了日志行为,包括日志级别、Appender、Layout、Filter等配置。例如: ```xml [%t] %-5level %logger{36} - %msg%n"/> ...
2. **SLF4J到Log4j桥接器**:slf4j-log4j12-1.7.18.jar实现了SLF4J接口到Log4j 1.x的桥接,使得使用SLF4J API编写的代码可以在Log4j-core-2.5环境下运行。 三、配置与实践 配置Log4j-core-2.5通常涉及创建一个`log...
- **Loggers**: 日志记录器是Log4j 的核心组件,负责接收日志事件并将其传递给适当的Appender。 - **Appenders**: Appender 是负责将日志信息输出到指定目的地的组件,如控制台、文件、数据库或网络。 - **...
《log4j-2.15.0-rc2核心jar在SpringBoot中的整合与应用》 Log4j是一款广泛使用的日志记录框架,它的最新版本log4j-2.15.0-rc2针对之前的版本进行了诸多优化和安全改进。SpringBoot,作为Spring框架的轻量级实现,以...
标题中的“log4jdbc-log4j2配置简记”指的是在Java开发中使用log4jdbc-log4j2库来监控和记录SQL查询的过程。log4jdbc是一个开源项目,它允许开发者通过日志系统来追踪数据库操作,而log4j2是log4j的升级版,提供了更...
Log4j的配置通常通过一个名为`log4j.properties`或`log4j.xml`的文件进行,这个文件定义了Loggers、Appenders和Layouts的设置。例如,以下是一个简单的配置示例: ```properties # 配置控制台输出 log4j.rootLogger...
Apache Log4j是Java平台上的一个著名日志记录框架,其版本2.11.2是该库的一个稳定发行版,提供了丰富的日志功能和性能优化。在Java应用程序开发中,尤其是在Spring和Spring MVC框架中,Log4j是常用的日志解决方案之...
Log4j 2是Log4j的升级版,相较于早期的Log4j 1.x,它引入了许多新特性,如异步日志记录、配置动态更新、更强大的过滤器支持以及性能的显著提升。在2.6.2版本中,可能包含了对之前版本的一些bug修复和性能优化,确保...
《深入理解Log4j:基于1.2.17版本的实践与应用》 在Java开发领域,日志记录是一项至关重要的任务,它能够帮助开发者追踪程序运行过程中的信息、警告、错误等,从而便于调试和问题定位。Log4j作为Apache的一个开源...
Apache Log4j 是一个广泛使用的Java日志框架,它的主要任务是记录应用程序运行过程中的事件,如错误、警告、调试信息等。Log4j 2.16.0 是该框架的一个版本,它包含了对先前版本的安全更新和性能优化。在Java开发中,...
《Apache Log4j详解——基于log4j-1.2.16版本》 Apache Log4j是一款广泛使用的Java日志记录框架,它为开发者提供了一种灵活且强大的日志处理机制,使得在应用程序开发中可以方便地进行日志记录、管理和分析。Log4j...
3. **特定的Log4j-Kafka适配器**:为了使Log4j能够与Kafka进行通信,还需要一个中间件库,比如`log4j-kafka-appender.jar`或`log4j-appender-kafka-*.jar`,具体取决于你选择的实现。 在实际项目中,你可能需要将...
`log4j-slf4j-impl`是将SLF4J的日志调用桥接到log4j的实现,而`log4j-to-slf4j`则是将log4j的API桥接到SLF4J,方便迁移至其他日志框架。 当`log4j-slf4j-impl`和`log4j-to-slf4j`同时存在时,会导致日志配置混乱,...
7. **Async Loggers**:这是Log4j 2.0的一个重要特性,它通过使用一个单独的线程池来处理日志事件,极大地提高了日志记录的性能。 8. **Lifecycle Management**:Log4j 2.0提供了组件生命周期管理,使得在应用启动...
### Log4j 2.0 用户手册:详细解析 #### 1.1 欢迎使用 Log4j 2! ##### 1.1.1 引言 几乎每一个大型应用程序都包含自己的日志记录或追踪 API。根据这一规则,E.U.SEMPER 项目在早期决定开发自己的追踪 API。这是在 ...
- **log4j2.xml 或 log4j2.json**:Log4j 2.0 使用XML或JSON格式的配置文件,定义了Appenders(日志输出目标)、Loggers(日志记录器)、Filters(过滤器)和Layouts(布局)等组件。 3. **主要组件** - **Logger...
《Apache Log4j 2.5 源码解析与应用探索》 Apache Log4j 是Java领域中广泛使用的日志记录框架,尤其在2.5版本中,它提供了高效、灵活的日志处理能力,是许多企业级应用的首选。本文将深入探讨Log4j 2.5的源码,理解...
Apache Log4j 2.7 是一个广泛使用的Java日志框架的版本,它属于Apache软件基金会的Log4j项目的一部分。Log4j 提供了强大的日志记录功能,帮助开发者在应用程序中跟踪、记录和分析各种级别的日志信息,包括调试、信息...
在Log4j中,主要有三个核心组件:记录器(Loggers)、输出源(Appenders)和布局器(Layouts)。记录器是用于分类日志信息的核心对象,它们按照层次结构组织,类似于Java的包结构。开发者可以根据需要设置不同记录器...
Java中的Log4j 2日志框架是一款广泛应用于企业级应用开发的日志处理工具,它在Log4j 1.x的基础上进行了大量的优化和改进,提供了更高效、更灵活的日志记录功能。Log4j 2.23.0是其最新的稳定版本,包含了对性能、安全...