Apache Logging Project Homepage: http://logging.apache.org Log4j的类图
- Logger - 日志写出器,供程序员输出日志信息
- Appender - 日志目的地,把格式化好的日志信息输出到指定的地方去
- ConsoleAppender - 目的地为控制台的Appender
- FileAppender - 目的地为文件的Appender
- RollingFileAppender - 目的地为大小受限的文件的Appender
- Layout - 日志格式化器,用来把程序员的logging request格式化成字符串
- PatternLayout - 用指定的pattern格式化logging request的Layout
Logger:日志写出器Logger对象是用来取代System.out或者System.err的日志写出器,用来供程序员输出日志信息。Logger的输出方法Logger类对象提供一系列方法供程序员输出日志信息: - public void debug(Object msg);
- public void debug(Object msg, Throwable t);
- public void info(Object msg);
- public void info(Object msg, Throwable t);
- public void warn(Object msg);
- public void warn(Object msg, Throwable t);
- public void error(Object msg);
- public void error(Object msg, Throwable t);
- public void fatal(Object msg);
- public void fatal(Object msg, Throwable t);
Logger的命名规则Logger由一个String类的名字识别,logger的名字是大小写敏感的,且名字之间具有继承的关系,子名有父名作为前缀,用点号.分隔。如:x.y是x.y.z的父亲。根logger (root logger)是所有logger的祖先,它具有如下属性:1)它总是存在的;2)它不可以通过名字获得。通过调用public static Logger Logger.getRootLogger()获得root logger;通过调用public static Logger Logger.getLogger(String name)或者public static Logger Logger.getLogger(Class clazz)获得(或者创建)一个named logger。后者相当于调用Logger.getLogger(clazz.getName())。在某对象中,用该对象所属的类为参数,调用Logger.getLogger(Class clazz)以获得logger被认为是目前所知的最理智的命名logger的方法。Log level每个logger都被分配了一个日志级别 (log level),用来控制日志信息的输出。未被分配level的logger将继承它最近的父logger的level。每条输出到logger的日志请求(logging request)也都有一个level,如果该request的level大于等于该logger的level,则该request将被处理(称为enabled);否则该request将被忽略。故可得知: - logger的level越低,表示该logger越详细
- logging request的level越高,表示该logging request越优先输出
Level类中预定义了五个level,它们的大小关系如下:Level.ALL < Level.DEBUG < Level.INFO < Level.WARN < Level.ERROR < Level.FATAL < Level.OFF示例代码以下代码将用自己所属的类为参数,创建一个logger,启用默认配置,设置其level并向其输出若干logging request。<!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> -->import org.apache.log4j.Logger;
import org.apache.log4j.BasicConfigurator;
import org.apache.log4j.Level;
public class Log4jTest {
public static void main(String argv[]) {
// Create a logger by the name of class Log4jTest. Logger logger = Logger.getLogger(Log4jTest.class);
// Use the default configuration. BasicConfigurator.configure();
// Set the logger level to Level.INFO logger.setLevel(Level.INFO);
// This request will be disabled since Level.DEBUG < Level.INFO. logger.debug("This is debug.");
// These requests will be enabled. logger.info("This is an info.");
logger.warn("This is a warning.");
logger.error("This is an error.");
logger.fatal("This is a fatal error.");
}
} 关于logger的两点说明- 用同名参数调用Logger.getLogger(String name)将返回同一个logger的引用。故可以在一个地方配置logger,在另外一个地方获得配置好的logger,而无须相互间传递logger的引用。
- logger的创建可以按照任意的顺序,即,父logger可以后于子logger被创建。log4j将自动维护logger的继承树。
Maven 5 分钟入门教程Linux下搭建JavaEE开发环境相关资讯 Apache
- Linux+Apache+PHP+Oracle 基础环境 (11/23/2015 10:40:55)
- Apache httpd 2.4.17 发布下载 (10/14/2015 08:57:55)
- Apple MacBook搭建Apache多站点 (07/08/2015 09:41:46)
| - 聊聊 Apache 开源协议 (11/23/2015 10:13:05)
- Ubuntu 14.04下 Apache修改网站根 (07/29/2015 07:10:18)
- 25 个有用 Apache ‘.htaccess’ (07/01/2015 18:44:01)
|
本文评论 查看全部评论 (0)