java学习笔记(十九)――Java 日志记录 AND log4j(二)
gger.addHandler(handler);
11 logger.setLevel(Level.ALL);
12 logger.severe("严重错误");
13 logger.warning("警告信息");
14 logger.info("普通输出");
15 logger.config("配置信息");
16 logger.fine("日志信息");
17 logger.finer("日志信息");
18 logger.finest("日志信息");
19 }
20 }
复制代码
结果
复制代码
1 四月 10, 2014 4:44:43 下午 LoggerTest main
2 严重: 严重错误
3 四月 10, 2014 4:44:43 下午 LoggerTest main
4 严重: 严重错误
5 四月 10, 2014 4:44:43 下午 LoggerTest main
6 警告: 警告信息
7 四月 10, 2014 4:44:43 下午 LoggerTest main
8 警告: 警告信息
9 四月 10, 2014 4:44:43 下午 LoggerTest main
10 信息: 普通输出
11 四月 10, 2014 4:44:43 下午 LoggerTest main
12 信息: 普通输出
13 四月 10, 2014 4:44:43 下午 LoggerTest main
14 配置: 配置信息
15 四月 10, 2014 4:44:43 下午 LoggerTest main
16 详细: 日志信息
17 四月 10, 2014 4:44:43 下午 LoggerTest main
18 较详细: 日志信息
19 四月 10, 2014 4:44:43 下午 LoggerTest main
20 非常详细: 日志信息
复制代码
【log4j】
再学习一个常见的日志框架,log4j。先看个例子。
一、例子
1. LoggerTest.java
复制代码
1 import java.util.logging.Level;
2
3 import org.apache.log4j.Logger;
4
5 public class LoggerTest {
6 public static void main(String []args){
7 //获取Logger实例,参数为本类
8 Logger logger=Logger.getLogger(LoggerTest.class);
9 logger.debug("debuging");//输出一段DEBUG信息
10 logger.info("info..."); //输出一段INFO信息
11 logger.error("error..."); //输出一段ERROR错误信息
12 logger.fatal("fatal");
13 logger.warn("warn");
14 }
15 }
复制代码
2. log4j.properties
1 #此属性指定日志等级等于或低于INFO的日志信息输出到名为stdout的目的地
2 log4j.rootCategory=INFO, stdout
3 #此属性执行stdout这个输出目的地类型为控制台
5 #此属性指定输出日志的布局类,这里采用LOG4J默认的布局类
6 log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
3. 结果
1 info...
2 error...
3 fatal
4 warn
4. 注意事项
需要把log4j-1.2.16.jar导入
二、log4j的结构
(一) log4j的构成
根目录(级别和目的地);
目的地(控制台、文件等等);
输出样式。
(二) log4j包含类的意义
Logger - 日志写出器,供程序员输出日志信息
Appender - 日志目的地,把格式化好的日志信息输出到指定的地方去
ConsoleAppender - 目的地为控制台的Appender
FileAppender - 目的地为文件的Appender
RollingFileAppender - 目的地为大小受限的文件的Appender
Layout - 日志格式化器,用来把程序员的logging request格式化成字符串
PatternLayout - 用指定的pattern格式化logging request的Layout
三、.properties配置信息
Log4j由三个重要的组件构成:日志信息的优先级,日志信息的输出目的地,日志信息的输出格式。日志信息的优先级从高到低有ERROR、WARN、 INFO、DEBUG,分别用来指定这条日志信息的重要程度;日志信息的输出目的地指定了日志将打印到控制台还是文件中;而输出格式则控制了日志信息的显示内容。
在.properties进行配置的时候,也是针对日志信息的优先级,日志信息的输出目的地,日志信息的输出格式进行配置。
1. 配置根Logger
例子中,properties文件中的第一句就是配置这个。
1 log4j.rootLogger = level,appenderName1,appenderName2, ···
其中,level 是日志记录的优先级,分为OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL或者您定义的级别。Log4j建议只使用四个级别,优先级从高到低分别是ERROR、WARN、INFO、DEBUG。通过在这里定义的级别,您可以控制到应用程序中相应级别的日志信息的开关。比如在这里定义了INFO级别,则应用程序中所有DEBUG级别的日志信息将不被打印出来。 appenderName就是指B日志信息输出到哪个地方。您可以同时指定多个输出目的地。优先级:ALL < DEBUG < INFO
2. 配置日志信息输出目的地Appender
1 log4j.appender.appenderName = Log4j提供的appender类
2 log4j.appender.appenderName.属性名 = 属性值
3 ···
4 log4j.appender.appenderName.属性名 = 属性值
其中,Log4j提供的appender有以下几种:
1 org.apache.log4j.ConsoleAppender(控制台),
2 org.apache.log4j.FileAp