欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

在eclipse中使用log4j

程序员文章站 2022-07-15 13:50:57
...

在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或者直接看官方文档吧!