我的资源里有Log4j的源码和资源包,你有兴趣可以去下载Log4j这个玩意主要是用来记录程序中发生的事件和一些变量的值,它是根据Class对象里存储的变量方法等信息来获得要记录的日志内容 所以构造日志记录器对象的时候需要传入一个参数就是日志记录目标的Class对象我们可以通过配置文件log4j.properties把日志打到磁盘文件上去,方便在程序运行的时候随时监控程序里发生的事情用法就是用创建出来的logger对象的debug、info、warn、error四个方法来记录四种不同级别的日志!例如:logger.debug("The size of list is:"+list.size());
只好我刚总结了log4j的使用,这是我的一点笔记: 一:配置 A:)在Web Application 中使用log4j Step 1:配置log4j配置文件 ========================= # Set root logger level to DEBUG and its only appender to A1 #log4j中有五级logger #FATAL0 #ERROR3 #WARN4 #INFO6 #DEBUG7 log4j.rootLogger=DEBUG, A1 # A1 is set to be a ConsoleAppender. #log4j中Appender有几层 #ConsoleAppender输出到控制台 log4j.appender.A1=org.apache.log4j.ConsoleAppender # A1 uses PatternLayout. log4j.appender.A1.layout=org.apache.log4j.PatternLayout #输出格式 具体查看log4j javadoc org.apache.log4j.PatternLayout #d 时间 .... log4j.appender.A1.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n ================================另外一种配置 log4j.rootLogger=debug, stdout, R log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.layout=org.apache.log4j.PatternLayout # Pattern to output the caller's file name and line number. log4j.appender.stdout.layout.ConversionPattern=%5p [%t] (%F:%L) - %m%n #R 输出到文件 log4j.appender.R=org.apache.log4j.RollingFileAppender log4j.appender.R.File=example.log log4j.appender.R.MaxFileSize=100KB # Keep one backup file log4j.appender.R.MaxBackupIndex=1 log4j.appender.R.layout=org.apache.log4j.PatternLayout log4j.appender.R.layout.ConversionPattern=%p %t %c - %m%n Step 2:写启动的Servlet public class InitServlet extends HttpServlet { public void init() { ServletContext sct = getServletContext(); String prefix = sct.getRealPath("/"); //log4j 配置文件存放目录 System.out.println("[....Log4j]: The Root Path: " + prefix); System.out.println("[....Log4j]: InitServlet init start..."); String file = getInitParameter("log4j"); //log4j 配置文件 if (file != null) { PropertyConfigurator.configure(prefix + file); //根据配置初始化log4j } System.out.println("[....Log4j]: InitServlet Init Sucess..."); } public void doGet(HttpServletRequest req, HttpServletResponse res) { } public void doPost(HttpServletRequest req, HttpServletResponse res) { } } B:在一般的IDE中使用log4j,因为使用log4j需要做一些初始化,在Web Application 中这一部分初始化是有AppServer 启动是加载的。在IDE中,则我们在使用log4j 之前需要自己配置一下。 如下文件: public final class Lo4jTest { private static String CLASS_NAME = "com.bingo.test.Lo4jTest"; private static Logger log = Logger.getLogger(CLASS_NAME); //在Web Application 中下面的pattern是在log4j的配置文件中配置的。 //现在我们手动配置 private static String pattern="%-4r [%-t] [%p] [%c] [%x] - [%m]%n"; private static String pattern2="%-d{yyyy-MM-dd HH:mm:ss} [%c]-[%p] %m%n"; //设置输出层 // private static ConsoleAppender consAppender = new ConsoleAppender( new PatternLayout(pattern2)); public static void main(String[] args) { //配置log4j BasicConfigurator.configure(consAppender); // void configure(Appender appender); // void configure(); //配置时log4j提供了两种方式 //后一种比较简单,输出的信息不够详细 //我们可以使用前一种输出我们希望的格式 log.debug("Log4j Debug."); log.error("Log4j Error."); log.info("Log4j Info."); log.fatal("Log4j Fatal."); } } //使用pattern2上面的输出结果如下 2002-08-30 13:49:09 [com.bingo.test.Lo4jTest]-[DEBUG] Log4j Debug. 2002-08-30 13:49:09 [com.bingo.test.Lo4jTest]-[ERROR] Log4j Error. 2002-08-30 13:49:09 [com.bingo.test.Lo4jTest]-[INFO] Log4j Info. 2002-08-30 13:49:09 [com.bingo.test.Lo4jTest]-[FATAL] Log4j Fatal. //假如我们使用pattern输出如下: 0 [main] [DEBUG] [com.bingo.test.Lo4jTest] [] - [Log4j Debug.] 0 [main] [ERROR] [com.bingo.test.Lo4jTest] [] - [Log4j Error.] 0 [main] [INFO] [com.bingo.test.Lo4jTest] [] - [Log4j Info.] 0 [main] [FATAL] [com.bingo.test.Lo4jTest] [] - [Log4j Fatal.] 二:使用log4j 在实际使用过程中其实非常简单 1:)如下定义log,在log4j1.2以前使用Category,log4j1.2以后使用Logger代替 private static String CLASS_NAME = "com.bingo.test.Lo4jTest"; //log4j1.2 private static Logger log = Logger.getLogger(CLASS_NAME); //lo4j1.2以前 private static Category log =Category.getInstance(CLASS_NAME); //取得一个Category or Logger有几种方式,根据自己需要使用 2:)写日志 log.debug("Log4j Debug."); log.error("Log4j Error."); log.info("Log4j Info."); log.fatal("Log4j Fatal."); //void debug(Object message) //Log a message object with the DEBUG level. //void debug(Object message, Throwable t) //Log a message object with the DEBUG level including the //stack trace of the Throwable t passed as parameter. 三:注意事项 1:在具体使用中注意不同的信息使用不同的log方式,选择debug,error, info,fatal中的一种,以后可以根据需要屏蔽部分输出 2:开发过程中尽量输出到控制台,运行过程中则修改配置使其输出到文件. 3:定义log尽量使用文件名作为参数,这样容易查找错误.
http://www.blogjava.net/javainthink/archive/2005/10/02/14651.html
1 根据我们设置的日志级别,控制日志的输出
2 日志的输出支持自增式文件,控制台,数据库,还可以扩展。
3 日志的属性,当按"."命名有继承性,我们常使用类名来命名日志
2 通过上面的介始,我们给一个工程没有log4j的工程增加log4j功能的。根据下面几个步骤,你将很轻松的完成。
1 下载log4j的jar包(这个不用多说了)
2 编写一个log4j.properties 属性文件,放到你的源文件的根下,再根据具体修改
3 在每一个需要记录日的类中,增加一个类成员
// 初始化日志处理类
Logger log = Logger.getLogger(类名.class.getName());
import 自然就是引入log4j的功能包了。
log4j的配置分为log4j.properties和log4j.xml
打印日志对系统很重要,当系统出现错误的时候有据可寻
log4j.xml支持异步日志,当你不需要实时关注日志的时候
就可以使用这个,可以很大程度提升系统的性能,这个异步
由log4j自己维护,你只需要配置就可以了,等用熟了可以
深入了解~~~~
之前的一个项目应用了这个~~,很好~~~
上google查一下,有很多相关的资料。
所以构造日志记录器对象的时候需要传入一个参数就是日志记录目标的Class对象我们可以通过配置文件log4j.properties把日志打到磁盘文件上去,方便在程序运行的时候随时监控程序里发生的事情用法就是用创建出来的logger对象的debug、info、warn、error四个方法来记录四种不同级别的日志!例如:logger.debug("The size of list is:"+list.size());
一:配置
A:)在Web Application 中使用log4j
Step 1:配置log4j配置文件
=========================
# Set root logger level to DEBUG and its only appender to A1
#log4j中有五级logger
#FATAL0
#ERROR3
#WARN4
#INFO6
#DEBUG7
log4j.rootLogger=DEBUG, A1
# A1 is set to be a ConsoleAppender.
#log4j中Appender有几层
#ConsoleAppender输出到控制台
log4j.appender.A1=org.apache.log4j.ConsoleAppender
# A1 uses PatternLayout.
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
#输出格式 具体查看log4j javadoc org.apache.log4j.PatternLayout
#d 时间 ....
log4j.appender.A1.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n ================================另外一种配置
log4j.rootLogger=debug, stdout, R log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout # Pattern to output the caller's file name and line number.
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] (%F:%L) - %m%n
#R 输出到文件
log4j.appender.R=org.apache.log4j.RollingFileAppender
log4j.appender.R.File=example.log log4j.appender.R.MaxFileSize=100KB
# Keep one backup file
log4j.appender.R.MaxBackupIndex=1 log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=%p %t %c - %m%n Step 2:写启动的Servlet public class InitServlet extends HttpServlet { public void init() {
ServletContext sct = getServletContext();
String prefix = sct.getRealPath("/");
//log4j 配置文件存放目录
System.out.println("[....Log4j]: The Root Path: " + prefix);
System.out.println("[....Log4j]: InitServlet init start...");
String file = getInitParameter("log4j");
//log4j 配置文件
if (file != null) {
PropertyConfigurator.configure(prefix + file);
//根据配置初始化log4j
} System.out.println("[....Log4j]: InitServlet Init Sucess..."); } public void doGet(HttpServletRequest req, HttpServletResponse res) { } public void doPost(HttpServletRequest req, HttpServletResponse res) { }
} B:在一般的IDE中使用log4j,因为使用log4j需要做一些初始化,在Web Application
中这一部分初始化是有AppServer 启动是加载的。在IDE中,则我们在使用log4j
之前需要自己配置一下。
如下文件:
public final class Lo4jTest {
private static String CLASS_NAME = "com.bingo.test.Lo4jTest";
private static Logger log = Logger.getLogger(CLASS_NAME);
//在Web Application 中下面的pattern是在log4j的配置文件中配置的。
//现在我们手动配置
private static String pattern="%-4r [%-t] [%p] [%c] [%x] - [%m]%n";
private static String pattern2="%-d{yyyy-MM-dd HH:mm:ss} [%c]-[%p] %m%n";
//设置输出层
//
private static ConsoleAppender consAppender =
new ConsoleAppender(
new PatternLayout(pattern2));
public static void main(String[] args) {
//配置log4j
BasicConfigurator.configure(consAppender);
// void configure(Appender appender);
// void configure();
//配置时log4j提供了两种方式
//后一种比较简单,输出的信息不够详细
//我们可以使用前一种输出我们希望的格式
log.debug("Log4j Debug.");
log.error("Log4j Error.");
log.info("Log4j Info.");
log.fatal("Log4j Fatal.");
}
}
//使用pattern2上面的输出结果如下
2002-08-30 13:49:09 [com.bingo.test.Lo4jTest]-[DEBUG] Log4j Debug.
2002-08-30 13:49:09 [com.bingo.test.Lo4jTest]-[ERROR] Log4j Error.
2002-08-30 13:49:09 [com.bingo.test.Lo4jTest]-[INFO] Log4j Info.
2002-08-30 13:49:09 [com.bingo.test.Lo4jTest]-[FATAL] Log4j Fatal.
//假如我们使用pattern输出如下:
0 [main] [DEBUG] [com.bingo.test.Lo4jTest] [] - [Log4j Debug.]
0 [main] [ERROR] [com.bingo.test.Lo4jTest] [] - [Log4j Error.]
0 [main] [INFO] [com.bingo.test.Lo4jTest] [] - [Log4j Info.]
0 [main] [FATAL] [com.bingo.test.Lo4jTest] [] - [Log4j Fatal.] 二:使用log4j
在实际使用过程中其实非常简单 1:)如下定义log,在log4j1.2以前使用Category,log4j1.2以后使用Logger代替
private static String CLASS_NAME = "com.bingo.test.Lo4jTest";
//log4j1.2
private static Logger log = Logger.getLogger(CLASS_NAME);
//lo4j1.2以前
private static Category log =Category.getInstance(CLASS_NAME);
//取得一个Category or Logger有几种方式,根据自己需要使用 2:)写日志
log.debug("Log4j Debug.");
log.error("Log4j Error.");
log.info("Log4j Info.");
log.fatal("Log4j Fatal.");
//void debug(Object message)
//Log a message object with the DEBUG level.
//void debug(Object message, Throwable t)
//Log a message object with the DEBUG level including the
//stack trace of the Throwable t passed as parameter. 三:注意事项
1:在具体使用中注意不同的信息使用不同的log方式,选择debug,error,
info,fatal中的一种,以后可以根据需要屏蔽部分输出
2:开发过程中尽量输出到控制台,运行过程中则修改配置使其输出到文件.
3:定义log尽量使用文件名作为参数,这样容易查找错误.