log4j代码端之level含义
来源:互联网 发布:淘宝能在手机上开店吗 编辑:程序博客网 时间:2024/04/29 06:28
log4j主要包含三个组件,分别对应为:Loggers、appenders与layouts。他们彼此协作,使得程序可以依据不同层次记录日志,在运行时控制这些日志的输出格式以及将这些日志记录到对应的场所。
再进入正式level(层次),先介绍一下命名层次的概念. 所谓命名层次,就是使用点号进行分离,点号之前的对象是点号之后对象的父结点。例如"com.foo","com"为"foo"的父节点,相反"foo"就为"com"的子节点;再如"com.foo.Bar"中,"com"为"Bar"的祖先结点等.......
logger是按照层次来建立的,因而整个框架中存在着一个根结点。这个根有两个特殊的性质:
1. 一直都存在
2. 不能通过名来获取这个对象
当然,既然设计了这个类并且其又是存在的,我们可以通过Logger.getRootLogger获取这个根结点对象。对于其他非根结点logger对象,可以通过Logger.getLogger("对应的logger名")。下面列出Logger类的几个常用方法:
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);}
x,y,z均继承自root,同时他们之间并没有分配自己的级别,所以全都继承自root的 Proot级别。
日志对象名 自行分配级别 继承级别 rootProotProotXPxPxX.YPxyPxyX.Y.ZPxyzPxyz
上图中x,y,z均自行分配了级别,因而他们均使用自己的分配级别
日志对象名 自行分配级别 继承级别 rootProotProotXPxPxX.YnonePxX.Y.ZnonePx
同理,因为y没有分配对应的级别。因而其继承x对应的分配级别功能。
对于logger对象,通过调用上文提及的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");
正如上面程序清单列出的,logger可以被赋予不同的层次级别(level)。分别为debug、info、warn、error、fatal五个,优先级依次上升;所以在应用中,当我们设定了级别为info,那么当调用debug级别时,log4j是不会将这个函数的内容记录到对应的appenders当中的,只有级别大于等于info才能。同时这些级别对象定义在Level类中。在log4j框架中,级别功能是可以继承的;根据上文提及的命名层次,祖先结点设定的级别是可以被子孙结点所继承的。下面给出几张图加以解释:
日志对象名 自行分配级别 继承级别 rootProotProotXnoneProotX.YnoneProotX.Y.ZnoneProot
- log4j代码端之level含义
- log4j代码端之level含义
- log4j代码端之appenders与layouts含义
- log4j代码端之appenders与layouts含义
- 终结者:详述Log4j配置文件中代码的含义
- tdp_page_fault 函数解析之level,gfn变量的含义
- log4j 级别(level)
- log4j的默认level
- log4j 自定义 level
- log4j 级别(level)
- log4j配置文件的含义
- log4j配置:log4j配置文件基本含义说明
- log4j 代码
- log4j配置文件基本含义说明
- log4j配置文件基本含义说明
- log4j配置文件基本含义说明
- log4j配置文件基本含义说明
- log4j配置文件基本含义说明
- 子对话框调用父对话框函数
- 在Ubuntu 8.04下Compiz Fusion的部分设置
- XStream简单使用
- 实战------驱动如何发消息通知APP动作?
- 贫民窟里的chengren童话
- log4j代码端之level含义
- jsp调用geoserver图层,总结的最精简代码
- Spring: but no declaration can be found for element 'tx:annotation-driven'
- heu oj 1011 square
- document
- 分拆字符串并统计
- Effective C++摘要《第3章:构造函数、析构函数、赋值操作符》20090207
- 使用 SQL Server 时需要经常用到的几个设置选项
- 【老紫竹收藏+搜索系统】正式测试,完毕后发布1.0的源代码