最新的log4j版本,包括全源代码,类文件和文档可以在http://logging.apache.org/log4j/找到。

我们可以从上面的链接下载apache-log4j-x.x.x.tar.gz或zip文件。

支持库

jsp中log4jLog4j 安装 Ruby

我们可以利用log4j将信息记录到各种目的地,例如发送电子邮件,数据库或文件。

有一个我们须要放到classpath的库的列表,以便log4j可以拿起它并利用它。

例如,当从log4j发出电子邮件时,我们须要电子邮件库jar文件。

库是可选的,并且取决于我们将要与log4j框架一起利用的功能。

JavaMail API(mail.jar): 从https://glassfish.dev.java.net/javaee5/mail/用于基于电子邮件的日志记录。
JavaBeans Activation Framework(activation.jar): 来自http://java.sun.com/products/javabeans/jaf/index.jsp。
Java Message Service: 用于JMS和JNDI。
XML Parser(Xerces.jar): 来自http://xerces.apache.org/xerces-j/install.html。

Maven和Log4j

首先,利用以下maven命令创建一个空的Maven项目。

C:\mvn_test>mvn archetype:generate -DgroupId=com.w3cschool.ide -DartifactId=MyTest -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false

然后,转到项目文件夹并找到pom.xml,添加以下依赖关系。

<dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.17</version></dependency>

之后,将以下代码添加到在resources文件夹下创建的log4j.properties。

MyTest | +-src | +-main | +-java | | | +-com | | | +-w3cschool | | | +-ide | +-resources | +- log4j.properties

如上面的文件夹构造所示,资源位于java文件夹的保存级别。

对付Java Web运用程序,将log4j.properties文件存储在WEB-INF/classes目录下 将以下配置保存到log4j.properties文件中。
# Root logger optionlog4j.rootLogger=DEBUG, stdout, file # Redirect log messages to consolelog4j.appender.stdout=org.apache.log4j.ConsoleAppenderlog4j.appender.stdout.Target=System.outlog4j.appender.stdout.layout=org.apache.log4j.PatternLayoutlog4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n # Redirect log messages to a log file, support file rolling.log4j.appender.file=org.apache.log4j.RollingFileAppenderlog4j.appender.file.File=C:\\log4j.loglog4j.appender.file.MaxFileSize=5MBlog4j.appender.file.MaxBackupIndex=10log4j.appender.file.layout=org.apache.log4j.PatternLayoutlog4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n

末了一个%m%n 配置log4j以添加换行符。

%L设置从记录要求的行号。

%c{1}引用通过 getLogger()设置的日志记录名称。

%-5p设置日志记录优先级,如DEBUG或ERROR。

末了添加以下代码App.java并运行运用程序。

package com.w3cschool.ide; import org.apache.log4j.Logger; public class App{ final static Logger logger = Logger.getLogger(App.class); public static void main(String[] args) { App obj = new App(); obj.runMe(\"大众w3cschool\公众); } private void runMe(String parameter){ if(logger.isDebugEnabled()){ logger.debug(\"大众This is debug : \公众 + parameter); } if(logger.isInfoEnabled()){ logger.info(\"大众This is info : \"大众 + parameter); } logger.warn(\"大众This is warn : \"大众 + parameter); logger.error(\"大众This is error : \公众 + parameter); logger.fatal(\公众This is fatal : \公众 + parameter); } }

以下代码显示如何记录非常。

import org.apache.log4j.Logger;public class App { final static Logger logger = Logger.getLogger(App.class); public static void main(String[] args) { App obj = new App(); try { obj.divide(); } catch (ArithmeticException ex) { logger.error(\"大众Sorry, something wrong!\公众, ex); } } private void divide() { int i = 10 / 0; }}