在javaweb中使用log4j

新建一工程:
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());


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值