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");
分享到:
相关推荐
Log4j有三个主要的组件:Loggers,Appenders和Layouts,这里可简单理解为日志类别,日志要输出的地方和日志以何种形式输出。综合使用这三个组件可以轻松的记录信息的类型和级别,并可以在运行时控制日志输出的样式和...
用于log4j和jdk的颜色控制台日志记录 用法 从下载最新的颜色记录器jar或自行构建 下载可选,请参见下文( jansi-1.18是此时的最新版本,但我没什么花哨的东西,所以我不希望其他版本感到惊讶) 确保上面提到的jar...
Loggers组件的主要功能是提供相应API,根据不同配置的loggers将不同级别的log输入到控制台或文件,类似于java中经常用到的System.out.println,但是log4j封装后的loggers组件能够输出更丰富的信息,包括时间,线程,...
log4j是一个用Java编写的可靠,快速和灵活的日志框架(API),它在Apache软件许可下发布。 Log4j已经被移植到了C,C++,C#,Perl,Python和Ruby等语言中。 Log4j是高度可配置的,并可通过在运行时的外部文件...
通过截图详细记载了log4j的基本使用,log4j三个重要组件:loggers 日志记录器 Appenders 输出端 Layout日志格式化器
Log4j有三个主要的组件:Loggers(记录器),Appenders (输出源)和Layouts(布局)。这里可简单理解为日志类别,日志要输出的地方和日志以何种形式输出。综合使用这三个组件可以轻松地记录信息的类型和级别,并可以在...
Log4JS 库的这个派生提供了一个简单的类似 Log4j 的界面,用于在浏览器中进行登录。 这个项目的启动是为了降低复杂性,去除繁重的遗留支持,并为 stritti 创建和维护的添加模块化。 用法 初始化记录器: # init ...
4. Log4j 1.x Migration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 5. API . . . . . . . . . . . . . . . . . . . . . . . . . . . ....
A:)Log4j的三个重要组件—— Loggers, Appenders, Layouts 这三个组件协同的工作,使得开发者能够依据信息类别和级别去纪录信息,并能够 运行期间,控制信息记录的方式已经日志存放地点。 B:)记录器层次(Logger...
log4j提供分级方法在程序中嵌入日志记录语句。日志信息具有多种输出格式和多个输出级别。 使用一个专门的日志记录包,可以减轻对成千上万的System.out.println语句的维护成本,因为日志记录可以通过配置脚本在运行时...
- Support for a log formatter (similar to Layouts in Log4J) - Support for console log - Support for smtp formatter - Support for XML logs - Support for syslog - Support for changing format and level ...
Log4j有三个主要的组件:Loggers(记录器),Appenders (输出源)和Layouts(布局)。这里可简单理解为日志类别,日志要输出的地方和日志以何种形式输出。综合使用这三个组件可以轻松地记录信息的类型和级别,并可以在...
Log4j有三个主要的组件:Loggers(记录器),Appenders (输出源)和Layouts(布局)。这里可简单理解为日志类别,日志要输出的地方和日志以何种形式输出。综合使用这三个组件可以轻松地记录信息的类型和级别,并可以在...
日志4p 像 log4j2 这样的 Python 日志 使用应用程序根目录中的配置文件 [log4p.py]。 应用示例: from log4p import log TestLog =...配置示例:“log4j2.xml ” config ={ 'monitorInterval' : 10, 'loggers' :{ 'Lo
Log4j 是一个使用 Java 语言编写的,可靠、快速、灵活的日志框架(API),使用 Apache Software License 授权。它被移植到 C、C++、C#、Perl、Python、Ruby 和 Eiffel 语言中。 Log4j 是高度可配置的,在运行期使用...
java日志文件编程使用手册: Log4j 有三个主要的组件: Loggers , Appenders 和 Layouts ,即日志类别,日志要输出的地方和日志以何种形式输出。
53. Loggers 53.1. Configure a Logger 54. Metrics 54.1. Getting started 54.2. Supported monitoring systems 54.2.1. Atlas 54.2.2. Datadog 54.2.3. Ganglia 54.2.4. Graphite 54.2.5. Influx 54.2.6. JMX 54.2...
分层记录器,例如log4j和python日志记录。 如果您希望能够基于每个程序包配置日志记录,这将很有用。 每个记录器的任意数量的附加程序。 单个记录器可以写入控制台,日志文件,数据库等。 允许在日志事件中使用...