今天在Google reader上看到了人家讨论log4j的用法。想起来自己以前也整过两天,不过实在是想不起来了。这不,又从网上开始找点资料来看看了。其实大家肯定也和我一样,喜欢在程序当中写无数的println,杂乱无序的很讨人厌。
废话不多说,开始吧。
首先,你要使用log4j必须得有log4j的包吧。去哪里下载呢?当然是去apache的网站了。apache实在是有太多的好东西了。下载完毕后为了方便,建议还是在Myeclipse当中新建一个关于log4j的用户库。这样以后使用起来也方便很多。
log4j的使用主要就是其配置文件的使用。我们先来看一个简单的配置吧。
log4j.rootLogger=debug,appender1 #输出到文件(这里默认为追加方式) log4j.appender.appender1=org.apache.log4j.FileAppender #设置文件输出路径 #文本文件 #log4j.appender.appender1.File=c:/Log4J.log #HTML文件 log4j.appender.appender1.File=c:/Log4J.html #设置文件输出样式 #log4j.appender.appender1.layout=org.apache.log4j.TTCCLayout log4j.appender.appender1.layout=org.apache.log4j.HTMLLayout
log4j由三个重要的组件构成:日志信息的优先级,日志信息的输出目的地,日志信息的输出格式与布局。
我们来一段段的看这个代码吧,首先
log4j.rootLogger=debug,appender1
这段代码是用来定义log的根配置。这里后面有两个属性。第一个debug,debug是log的优先级。这里存在如下优先级别:从高到低有ERROR、WARN、INFO、DEBUG
appender1是定义的一个日志信息属性。我们来看下面这段代码
log4j.appender.appender1=org.apache.log4j.FileAppender
这段代码定义的是日志信息的输入目的地为file(文件)。其中log4j提供的日志信息输出方式有如下几点:
org.apache.log4j.ConsoleAppender(控制台),
org.apache.log4j.FileAppender(文件),
org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件),
org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件),
org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)
log4j.appender.appender1.File=c:/Log4J.html log4j.appender.appender1.layout=org.apache.log4j.HTMLLayout
以上两行分别表示为输入的文件位置和输出的格式(布局)
其中log4j的布局提供如下几种方式:
org.apache.log4j.HTMLLayout(以HTML表格形式布局),
org.apache.log4j.PatternLayout(可以灵活地指定布局模式),
org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串),
org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息)
就拿上面的例子来说,那么我们怎么在自己的java代码中输出自己的log信息呢?我们还是先来看一段代码吧:
package com.foolfish.log4j; import org.apache.log4j.Logger; public class Log4jDemo{ private static Logger logger = Logger.getLogger(Log4jDemo.class); /** * @param args */ public static void main(String[] args) { logger.debug("Hello this is my debug log."); logger.info("Hello this is my infolog."); logger.error("Hello this is my error log."); } }
我们来看如下的代码
private static Logger logger = Logger.getLogger(Log4jDemo.class);
该段代码的作用是获取log相关配置,下面我们就可以调用logger提供的各种级别的方法来输出自己的log信息了。
logger.debug("Hello this is my debug log."); logger.info("Hello this is my infolog."); logger.error("Hello this is my error log.");
好了,运行该程序,那么你将会在你的C盘下看见网页形式的log文件Log4JDemo.html,打开该文件:
怎么样,效果还不错吧