在eclipse中使用log4j

时间:2022-11-09 21:49:47

 

 

在java平台上写程序也有点时日,从以前的j2ee到现在的后台程序,多多少少都用到了log4j来输出日志,不过每次用的时候都是别人配好了,然后告诉我说怎么用,然后直接调用就好,一直对log4j处于一直半解的状态。今天,凭着要知其然,知其所以然的态度,细细的研究了下log4j。

 

1、在eclipse的使用log4j

 

对于程序员来讲,最快的方法就是先上手,看到直观效果在说,所以第一步就是怎么让自己的程序能够在eclipse里面使用起来。

 

第一步:首先,新建一个工程MinaTest,然后添加package,叫testLog4j,然后加入如下代码:

 

package testLog4j;


import org.apache.log4j.Logger;
import org.apache.log4j.BasicConfigurator;
import org.apache.log4j.Level;

public class testLog4j {
    public static void main(String argv[]) {
   
        // Create a logger by the name of class Log4jTest.
        Logger logger = Logger.getLogger(testLog4j .class);

        // Use the default configuration.
        //BasicConfigurator.configure();

        // Set the logger level to Level.INFO
        logger.setLevel(Level.INFO);

        // This request will be disabled since Level.DEBUG < Level.INFO.
        logger.debug("This is debug.");

        // These requests will be enabled.
        logger.info("This is an info.");
        logger.warn("This is a warning.");
        logger.error("This is an error.");
        logger.fatal("This is a fatal error.");
       
        return;
    }
}

第二步:将log4j.jar包加入工程中

上面代码写好以后,在eclipse下是会提示里有语法错误的,因为eclipse不知道到什么地方import对应的class。在package explorer中当前工程点右键->property->java build path,在tab页上选择libraries->ADD JARS,将下载的log4j的jar包添加进来。"ok"之后,你会发现package explorer中当前工程中,除了先前的JRE System Library,还多出来一个Referenced Libraries,里面就是添加的jar包。clean以后,语法错误就没有了。

这个时候,如果我们之间run as application,会得到如下提示:

 

log4j:WARN No appenders could be found for logger (com.foo).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.

 

因为程序找不到log4j.properties这一配置文件。所以,下面就是把这个配置文件添加到当前的工程中了。

 

第三步:将log4j.properties添加到当前工程中

1) 在当前工程上右键。new->folder,在弹出的对话框中的"folder name"输入一个文件夹的名字,这里用log4j。然后点击"advanced",选中"link to folder in the file system",“browse”一个目录,一般选当前工程的目录,然后在输入关联的文件夹名,如D:/workspace/MinaTest/log4j。这样才建立的一个关联的目录。接着在package explorer中找到刚刚建立的文件log4j文件夹,import你定义好的log4j.properties(import的过程省了),如果没有现成的,下面这个可做参考:

 


log4j.rootLogger=DEBUG, R, O

# Stdout
log4j.appender.O=org.apache.log4j.ConsoleAppender

# File
log4j.appender.R=org.apache.log4j.RollingFileAppender
log4j.appender.R.File=log4j.log

# Control the maximum log file size
log4j.appender.R.MaxFileSize=100KB

# Archive log files (one backup file here)
log4j.appender.R.MaxBackupIndex=1

log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.O.layout=org.apache.log4j.PatternLayout

log4j.appender.R.layout.ConversionPattern=[%d{ISO8601}]%5p%6.6r[%t]%x - %C.%M(%F:%L) - %m%n
log4j.appender.O.layout.ConversionPattern=[%d{ISO8601}]%5p%6.6r[%t]%x - %C.%M(%F:%L) - %m%n

 

先用着,意思等会在说

 

第四步 编译

在但前package(testLog4j)单击右键,run as->run configuration,然后在弹出的页面的tab页中选择Classpath,选中当前的工程"MinaTest",然后发现右侧的"Advanced"进入可选状态,点击以后,会接着弹出一个对话框,选择"Add folders",找到当前的工程,选择log4j文件夹,然后确定。这样,我们就把log4j.properties添加到当前工程的class path中了。选择run。查看eclipse的console

 

[2010-06-11 19:44:42,523] INFO     0[main] - testLog4j.testLog4j.main(testLog4j.java:24) - This is an info.
[2010-06-11 19:44:42,533] WARN    10[main] - testLog4j.testLog4j.main(testLog4j.java:25) - This is a warning.
[2010-06-11 19:44:42,533]ERROR    10[main] - testLog4j.testLog4j.main(testLog4j.java:26) - This is an error.
[2010-06-11 19:44:42,533]FATAL    10[main] - testLog4j.testLog4j.main(testLog4j.java:27) - This is a fatal error.

 

到此,就可以在eclipse里面边写代码边调试了。

 

2 log4j.properties各项释义

 

详细的释义可以去看相关的文档,这里只说格式,帮着入门

Log4J配置文件的基本格式如下:

 #配置根Logger
log4j.rootLogger  =   [ level ]   ,  appenderName1 ,  appenderName2 ,  …

 

回过头来看上面

log4j.rootLogger=DEBUG, R, O

这里R,O是表示两个appderName,当然,也可以是别的名字

 

在往下,就是对这两个appender定义不同的属性

先看 appender O

log4j.appender.O=org.apache.log4j.ConsoleAppender 定义输出到控制台

log4j.appender.O.layout=org.apache.log4j.PatternLayout 定义输出的布局

log4j.appender.O.layout.ConversionPattern=[%d{ISO8601}]%5p%6.6r[%t]%x - %C.%M(%F:%L) - %m%n 输出的格式

 

在看 appender R,区别是输出的地方不一样

log4j.appender.R=org.apache.log4j.RollingFileAppender
log4j.appender.R.File=log4j.log

这的意思是输出到文件中

因此,这个程序在当前工程下还存在一个 log4j.log的文件。

 

简要介绍,详细的文档google或者直接看官方文档吧!