大家在进行应用系统 开发时不可避免地要使用到一些日志框架 进行日志记录,比如开发阶段的调试信息、运行时的日志记录及审计。日志是应用软件中不可缺少的部分,Apache的开源项目log4j是一个功能强大的日志组件,提供方便的日志记录。在apache网站:
http://logging.apache.org/log4j/1.2/download.html 点击打开链接可以免费下载到Log4j最新版本的软件包。
Log4J有三个主要部件,它们是记录器(Loggers)、输出源(Appenders)和布局(Logouts)。记录器按照布局中指定的格式把日志信息写入一个或多个输出源。输出源可以是控制台、文本文件、XML文件或Socket,甚至还可以把信息写入到Windows事件日志或通过电子邮件发送,这都需要相应的类来处理,这些相关的类是ConsoleAppender、FileAppender、SocketAppender、NtEventLogAppender和JMSAppender。
- 记录器(Logger)
package org.apache.log4j;
public class Logger {
//创建和恢复方法
public static Logger getRootLogger();
public static Logger getLogger(String name);
public static Logger getLogger(Class clazz);
// 打印方法
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);
// 常用打印方法
public void log(Level l, Object message);
}
使用方式
Logger logger = Logger.getLogger(JavaLoggingExample.class.getName());
例如 在 Log4jDemo 类中 使用
public class Log4jDemo
{
private static Logger logger = Logger.getLogger(Log4jDemo.class);
public static void main(String[] args) {
// 记录debug级别的信息
logger.debug("这是一个调试信息 ----debug");
// 记录info级别的信息
logger.info("This is info message.");
// 记录error级别的信息
logger.error("This is error message.");
}
}
-
2.日志级别
Log4J中的一个核心概念是日志级别是有序的。
- 日志记录的优先级,分为OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL或 者您定义的级别
Log4j建议只使用四个级别,优 先级从高到低分别是ERROR > WARN > INFO > DEBUG。
通过在这里定义的级别,您可以控制到应用程序中相应级别的日志信息的开关。
比如定 义了INFO级别,则应用程序中所有DEBUG级别的日志信息将不被打印出来。
- 3、日志布局(layout)
- %m 输出代码中指定的消息
%p 输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL
%r 输出自应用启动到输出该log信息耗费的毫秒数
%c 输出所属的类目,通常就是所在类的全名
%t 输出产生该日志事件的线程名
%n 输出一个回车换行符,Windows平台为“/r/n”,Unix平台为“/n”
%d 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,
比如:%d{yyy MMM dd HH:mm:ss,SSS},输出类似:2002年10月18日 22:10:28,921
%l 输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数。