`
headof
  • 浏览: 23053 次
  • 来自: ...
社区版块
存档分类
最新评论

log4j-loggers

阅读更多
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日志管理系统简单使用说明

    Log4j有三个主要的组件:Loggers,Appenders和Layouts,这里可简单理解为日志类别,日志要输出的地方和日志以何种形式输出。综合使用这三个组件可以轻松的记录信息的类型和级别,并可以在运行时控制日志输出的样式和...

    java-color-loggers:用于log4j和jdk的颜色控制台日志记录

    用于log4j和jdk的颜色控制台日志记录 用法 从下载最新的颜色记录器jar或自行构建 下载可选,请参见下文( jansi-1.18是此时的最新版本,但我没什么花哨的东西,所以我不希望其他版本感到惊讶) 确保上面提到的jar...

    深入学习log4j

    Loggers组件的主要功能是提供相应API,根据不同配置的loggers将不同级别的log输入到控制台或文件,类似于java中经常用到的System.out.println,但是log4j封装后的loggers组件能够输出更丰富的信息,包括时间,线程,...

    Log4j教程.docx

    log4j是一个用Java编写的可靠,快速和灵活的日志框架(API),它在Apache软件许可下发布。 Log4j已经被移植到了C,C++,C#,Perl,Python和Ruby等语言中。 Log4j是高度可配置的,并可通过在运行时的外部文件...

    log4j日志的基本使用

    通过截图详细记载了log4j的基本使用,log4j三个重要组件:loggers 日志记录器 Appenders 输出端 Layout日志格式化器

    Log4j.properties配置详解

    Log4j有三个主要的组件:Loggers(记录器),Appenders (输出源)和Layouts(布局)。这里可简单理解为日志类别,日志要输出的地方和日志以何种形式输出。综合使用这三个组件可以轻松地记录信息的类型和级别,并可以在...

    log4js-lw:Log4js 的轻量级分支

    Log4JS 库的这个派生提供了一个简单的类似 Log4j 的界面,用于在浏览器中进行登录。 这个项目的启动是为了降低复杂性,去除繁重的遗留支持,并为 stritti 创建和维护的添加模块化。 用法 初始化记录器: # init ...

    Apache Log4j 2 v2 用户指南

    4. Log4j 1.x Migration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 5. API . . . . . . . . . . . . . . . . . . . . . . . . . . . ....

    log4j使用教程

    A:)Log4j的三个重要组件—— Loggers, Appenders, Layouts 这三个组件协同的工作,使得开发者能够依据信息类别和级别去纪录信息,并能够 运行期间,控制信息记录的方式已经日志存放地点。 B:)记录器层次(Logger...

    Log4j使用手册 日志记录包

    log4j提供分级方法在程序中嵌入日志记录语句。日志信息具有多种输出格式和多个输出级别。 使用一个专门的日志记录包,可以减轻对成千上万的System.out.println语句的维护成本,因为日志记录可以通过配置脚本在运行时...

    erlang日志应用log4erl(非sasl)

    - 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_配置

    Log4j有三个主要的组件:Loggers(记录器),Appenders (输出源)和Layouts(布局)。这里可简单理解为日志类别,日志要输出的地方和日志以何种形式输出。综合使用这三个组件可以轻松地记录信息的类型和级别,并可以在...

    Log4.properties配置详解

    Log4j有三个主要的组件:Loggers(记录器),Appenders (输出源)和Layouts(布局)。这里可简单理解为日志类别,日志要输出的地方和日志以何种形式输出。综合使用这三个组件可以轻松地记录信息的类型和级别,并可以在...

    log4p:登录python

    日志4p 像 log4j2 这样的 Python 日志 使用应用程序根目录中的配置文件 [log4p.py]。 应用示例: from log4p import log TestLog =...配置示例:“log4j2.xml ” config ={ 'monitorInterval' : 10, 'loggers' :{ 'Lo

    Nodejs Express 通过log4js写日志到Logstash(ELK)

    Log4j 是一个使用 Java 语言编写的,可靠、快速、灵活的日志框架(API),使用 Apache Software License 授权。它被移植到 C、C++、C#、Perl、Python、Ruby 和 Eiffel 语言中。 Log4j 是高度可配置的,在运行期使用...

    java_programming_manual_log_files.rar_java programming_日志

    java日志文件编程使用手册: Log4j 有三个主要的组件: Loggers , Appenders 和 Layouts ,即日志类别,日志要输出的地方和日志以何种形式输出。

    spring-boot-reference.pdf

    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...

    lgr:R的功能齐全的日志记录框架

    分层记录器,例如log4j和python日志记录。 如果您希望能够基于每个程序包配置日志记录,这将很有用。 每个记录器的任意数量的附加程序。 单个记录器可以写入控制台,日志文件,数据库等。 允许在日志事件中使用...

Global site tag (gtag.js) - Google Analytics