一、Log4j介绍
log4j是类似于java.util.logging的日志作用,即记录一些有用信息,是一个日志框架;log4j == log for Java日志框架的作用:(1)函数参数是否正确;(2)软件发布后,记录用户的每一步操作;(3)记录程序运行出错位置;log4j在
http://logging.apache.org/log4j/1.2/download.html 中进行下载;log4j的api文档在log4j/site/apidocs/index.html中;log4j可以改变日志记录的形式比如HTML、Simple等;log4j可以改变日志输出的目的地,比如File、DB等;
二、配置使用Log4j
原本是一个zip包,取出jar包,并在Eclipse的某个Project build path导入;
三、简单的使用Log4j
log4j需要配置文件log4j.properties进行配置,log4j.properties位于src目录下;
log4j.properties规则:(1)键值对;(2)#代表注释;(3)不支持中文;
Log4jDemo.java
[java] - package org.impl;
-
- import org.apache.log4j.Logger;
-
- public class Log4jDemo {
- public static void main(String args[]){
- Logger logger = Logger.getLogger(org.impl.Log4jDemo.class);
- logger.debug("debug");
- logger.info("info");
- logger.error("error");
- }
- }
log4j.properties
[html] - log4j.rootLogger=debug,appender1
- log4j.appender.appender1=org.apache.log4j.ConsoleAppender
- log4j.appender.appender1.layout=org.apache.log4j.TTCCLayout
显示结果:
[html] - [main] DEBUG org.impl.Log4jDemo - debug
- [main] INFO org.impl.Log4jDemo - info
- [main] ERROR org.impl.Log4jDemo - error
这样一个简单的log4j应用。 这个配置文件的意思是:rootLogger表示最低显示等级,即显示debug等级及以上的信息;appender1表示一个名字;ConsoleAppender表示输出到控制台,如果想要输出到文件,则可以使用FileAppender并制定文件名称;TTCCLayout是一种布局方式;debug等级表示在编译开发阶段的信息;error等级表示错误信息;info等级表示一般的信息; 如果看到如下信息:
[html] - log4j:WARN No appenders could be found for logger (org.impl.Log4jDemo).
- log4j:WARN Please initialize the log4j system properly.
- log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
表示配置文件位置不正确,应该放到src目录下!
四、逐步了解Log4j
任务1:将日志输出到指定文件
只需要修改配置文件即可,配置文件修改为:
[html] - log4j.rootLogger=debug,appender1
- log4j.appender.appender1=org.apache.log4j.FileAppender
- log4j.appender.appender1.File=./java0.log
- log4j.appender.appender1.layout=org.apache.log4j.TTCCLayout
这样就指定了日志输出到工程目录下的java0.log文件中;注意:这个日志文件时追加类型的。
任务2:将日志输出以HTML格式输出(效果很好!)修改配置文件为:
[html] - log4j.rootLogger=debug,appender1
- log4j.appender.appender1=org.apache.log4j.FileAppender
- log4j.appender.appender1.File=./java0.html
- log4j.appender.appender1.layout=org.apache.log4j.HTMLLayout
即可;
任务3:同时输出到控制台和文件修改配置文件为:
[html] - log4j.rootLogger=debug,appender1,appender2
- log4j.appender.appender1=org.apache.log4j.FileAppender
- log4j.appender.appender1.File=./log4j.HTML
- log4j.appender.appender1.layout=org.apache.log4j.HTMLLayout
-
- log4j.appender.appender2=org.apache.log4j.ConsoleAppender
- log4j.appender.appender2.layout=org.apache.log4j.SimpleLayout
五、Log4j核心组件
1.Logger
设定了显示日志的级别;
常用级别为debug,info,warn,error,fatal; 2.Appender
设定了日志的输出目的;常用有:
(1)ConsoleAppender(2)FileAppender(3)DailyRollingFileAppender 一天换一个文件(4)JdbcAppender 输出到数据库
3.Layout
设定日志的内容格式; 常用有:
(1)HTMLLayout;(2)TTCCLayout;(3)PatternLayout;制定布局样式 如果要设置PatternLayout,必须将配置文件修改为以下形式:
[html] - log4j.rootLogger=debug,appender1,appender2
- log4j.appender.appender1=org.apache.log4j.FileAppender
- log4j.appender.appender1.File=./log4j.HTML
- log4j.appender.appender1.layout=org.apache.log4j.HTMLLayout
-
- log4j.appender.appender2=org.apache.log4j.ConsoleAppender
- log4j.appender.appender2.layout=org.apache.log4j.PatternLayout
-
- log4j.appender.appender2.layout.ConversionPattern= 格式名称
格式形式如下:
%p:日志优先级(debug、info)%t:输出日志的线程名;%d{yyyy-MM-dd HH:mm:ss}:时间;%c:所属类名;%r:日志输出所花时间;%n:换行;%l:日志所在行;%m:信息;%M:方法;
比如:
%r [%t] -%l %p %d{yyyy-MM-dd HH:mm:ss} %n显示如下:3 [main] -org.impl.Log4jDemo.main(Log4jDemo.java:10) ERROR 2012-01-11 17:11:37
3表示所花时间;[main]表示线程;org.impl.Log4jDemo.main(Log4jDemo.java:10) 表示 %l ;ERROR表示%p;
Log4j 的详细介绍:请点这里
Log4j 的下载地址:请点这里