您的位置:首页 > 编程语言 > Java开发

在javaweb中使用log4j

2013-08-26 10:09 295 查看
新建一工程:

log4j使用log4j的准备工作,

第一jar包,需要log4j-1.2.11.jar包,导入到自己的工程中;

第二创建log4j.properties文件,填入相应的配置,我自己填写了两个配置一个是控制台的输出,另一个是文件的输出。

配置如下:

### 把日志信息输出到控制台

log4j.appender.stdout=org.apache.log4j.ConsoleAppender

### 信息打印到System.out上

log4j.appender.stdout.Target=System.out

log4j.appender.stdout.layout=org.apache.log4j.PatternLayout

### 指定输出格式:显示日期和log信息

log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %m%n

### 把日志信息输出到文件 F:\\log\\test.log

log4j.appender.file=org.apache.log4j.FileAppender

### 指定日志输出的文件名

log4j.appender.file.File=f:\\log\\test.log

log4j.appender.file.layout=org.apache.log4j.PatternLayout

### 指定输出格式:显示日期,日志发生位置和日志信息

log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %l %m%n

### 设置优先级别、以及输出源 ###

### 设置优先级别为debug

log4j.rootLogger=debug, stdout, file

配置完成了! 下面写一个测试程序吧!!!

Log4j.java

import org.apache.log4j.Logger;

public class Log4j {

public static void main(String[] args) {

// 获取日志记录器,这个记录器将负责控制日志信息

Logger logger = Logger.getLogger(Log4j.class.getName());

try {

// 使用Logger对象的debug、info方法输出日志信息

logger.debug("设置教员的编号。");

} catch (IllegalArgumentException ex) {

// 使用Logger对象的debug、info方法输出日志信息

logger.info(ex.getMessage());

}

}

}

测试结果:这是控制台的输出效果:

2013-08-13 12:22:21 设置教员的编号。

当log文件路径设置为工程目录下的一个路径时,做法如下:

在web项目中ser目录下

log4j.properties

按等级保存到文件

log4j.rootLogger=info,stdout,info,debug,error

log4j.appender.stdout=org.apache.log4j.ConsoleAppender

log4j.appender.stdout.layout=org.apache.log4j.PatternLayout

log4j.appender.stdout.layout.ConversionPattern=[%-5p] [%d{HH:mm:ss}] %c - %m%n

log4j.logger.info=info

log4j.appender.info=org.apache.log4j.DailyRollingFileAppender

log4j.appender.info.layout=org.apache.log4j.PatternLayout

log4j.appender.info.layout.ConversionPattern=[%-5p] [%d{HH:mm:ss}] %c - %m%n

log4j.appender.info.datePattern='.'yyyy-MM-dd

log4j.appender.info.Threshold = INFO

log4j.appender.info.append=true

log4j.appender.info.File=${webApp.root}/logs/info.log

log4j.logger.debug=debug

log4j.appender.debug=org.apache.log4j.DailyRollingFileAppender

log4j.appender.debug.layout=org.apache.log4j.PatternLayout

log4j.appender.debug.layout.ConversionPattern=[%-5p] [%d{HH:mm:ss}] %c - %m%n

log4j.appender.debug.datePattern='.'yyyy-MM-dd

log4j.appender.debug.Threshold = DEBUG

log4j.appender.debug.append=true

log4j.appender.debug.File=${webApp.root}/logs/debug.log

log4j.logger.error=error

log4j.appender.error=org.apache.log4j.DailyRollingFileAppender

log4j.appender.error.layout=org.apache.log4j.PatternLayout

log4j.appender.error.layout.ConversionPattern=[%-5p] [%d{HH:mm:ss}] %c - %m%n

log4j.appender.error.datePattern='.'yyyy-MM-dd

log4j.appender.error.Threshold = ERROR

log4j.appender.error.append=true

log4j.appender.error.File=${webApp.root}/logs/error.log

创建Servlet类,程序启动加载

Log4jInitServlet.java

import javax.servlet.ServletConfig;

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import org.apache.log4j.PropertyConfigurator;

public class Log4jInitServlet extends HttpServlet {

private static final long serialVersionUID = 1L;

public void init(ServletConfig config) throws ServletException {

super.init(config);

String prefix = getServletContext().getRealPath("/");

String file = getInitParameter("log4j");

if (file != null) {

System.out.println(prefix);

System.setProperty("webApp.root", prefix);/*替换log4j.properties文件中的${webApp.root}参数*/

PropertyConfigurator.configure(prefix + file);

}

}

}

在web.xml中添加

<servlet>

<servlet-name>log4j</servlet-name>

<servlet-class>

com.jzy.che.action.Log4jInitServlet

</servlet-class>

<init-param>

<param-name>log4j</param-name>

<param-value>WEB-INF/classes/log4j.properties</param-value>

</init-param>

<load-on-startup>1</load-on-startup>

</servlet>

调用

public static Logger logger = Logger.getLogger(Log4jUtil.class.getName());
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: