posts - 0,  comments - 17,  trackbacks - 0

第一步,

Properties文件(first_log4j.properties) 放在系统的src包中。(eclipse布置在"WEB-INF"classes

log4j.rootLogger=INFO,stdout,logfile

log4j.category.com.sumit=DEBUG

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

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

log4j.appender.stdout.layout.ConversionPattern= [%p][%c]- %m [%d] %n

# logfile set up.

log4j.appender.logfile=org.apache.log4j.RollingFileAppender

log4j.appender.logfile.File=set up in web.xml

log4j.appender.logfile.MaxFileSize=50MB

# Keep three backup files.

log4j.appender.logfile.MaxBackupIndex=10

# Pattern to output: date priority [category] - message

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

#log4j.appender.logfile.layout=org.apache.log4j.HTMLLayout

#log4j.appender.logfile.layout.ConversionPattern=时间:%d%n 优先级:%p%n 源文件:%F%n :%c%n 方法:%M%n 行数%L%n 最全:%l%n 信息:%m%n------------------------------------------------%n%n

log4j.appender.logfile.layout.ConversionPattern=%n- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -- - - - - - - - - - - - - - - - - - - -- - - - - - - - - - - - - - - - - - - - %n时间:%d%n 优先级:%p%n 位置:%l%n 信息:%m%n%n

第二步,servlet

package com.royal.listener;

import java.io.FileInputStream;

import java.io.IOException;

import java.util.Properties;

import javax.servlet.ServletConfig;

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import org.apache.log4j.Logger;

import org.apache.log4j.PropertyConfigurator;

publicclass LogListener extends HttpServlet {

  

    privatestaticfinallongserialVersionUID = 1L;

   

    static Logger log = Logger.getLogger(LogListener.class);

    public LogListener() {

    }

    publicvoid init(ServletConfig config) throws ServletException {

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

       

        String properties = config.getInitParameter("log4j_properties");

        String logger=config.getInitParameter("log4j_outPutFile");

       

        String propertiesPath = prefix + properties;

        Properties props = new Properties();

        try {

            FileInputStream istream = new FileInputStream(propertiesPath);

            props.load(istream);

            istream.close();

            //toPrint(props.getProperty("log4j.appender.file.File"));

            String logFile = prefix + logger;//设置路径

            logFile=logFile.replace('""', '/');

           

            props.setProperty("log4j.appender.logfile.File",logFile);

            

           

            PropertyConfigurator.configure(props);//装入log4j配置信息

           

            log.info("皇家金典项目启动------");

          

            log.info("LOG被加载日志文件位置:"+props.getProperty("log4j.appender.logfile.File"));

           

        } catch (IOException ioe) {

        log.error(ioe);

           ioe.printStackTrace();

            return;

        }

    }

}

Web.xml: (load-on-srartup=1 项目启动时加载)

参数中有一个是logs"log.log,自动生成日志文件,生成在项目下面的logs directory中,文件名为log.log

<servlet>

         <servlet-name>LogListener</servlet-name>

         <servlet-class>com.royal.listener.LogListener</servlet-class>

         <init-param>

           <param-name>log4j_properties</param-name>

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

         </init-param>

         <init-param>

           <param-name>log4j_outPutFile</param-name>

           <param-value>logs"log.log</param-value>

         </init-param>

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

       </servlet>

第三步 使用

如果是普通的JAVA类,

就得初始化log变量

static Logger log = Logger.getLogger(Mail.class);

在要记录日去的地方

log.error(ex+创建MIME邮件对象失败!"); //exException对象

或者 log.info/log.debug/log.warn

如果是struts中的DispatchAction的子类,或其它有Log的类的子类。

就可以不用初始化log变量。

posted on 2007-12-18 11:31 xyz 阅读(347) 评论(0)  编辑  收藏 所属分类: 他山之石

只有注册用户登录后才能发表评论。


网站导航:
博客园   IT新闻   Chat2DB   C++博客   博问  
 

<2024年12月>
24252627282930
1234567
891011121314
15161718192021
22232425262728
2930311234

留言簿

随笔档案(1)

文章分类(44)

文章档案(46)

收藏夹(1)

Adobe

AOP

API

appServer

BI

c

  • c-free
  • codeblocks
  • codelite
  • CodeLite IDE 是一个强大的开源,跨平台的 C/C++整合开发环境. 支持包括 Windows、Linux 和 Mac 系统下运行
  • codelite官网
  • dev-c++
  • Dev-C++是一个C&C++开发工具,它是一款自由软件,遵守GPL协议。
  • GCC
  • GCC 原名为 GNU C 语言编译器(GNU C Compiler),因为它原本只能处理 C语言。GCC 很快地扩展,变得可处理 C++。之后也变得可处理 Fortran、Pascal、Objective-C、Java, 以及 Ada 与其他语言。

Cache

CMS

DB

eclipse

FreeMarker

hibernate

html5

ibatis

java

jquery

js

json

Linux

Log

mail server

mobile

mysql

oauth

openID

other

PHP

portal

report

Scheduler

schema

Security

SOA

spring

struts

UI原型设计

w3c

Wap

webservice

xml

供应链管理

博客链接

好网站

工作流

开源网

招聘

插件下载

操作系统

构建可伸缩的系统

构建工具

测试

  • IETest
  • IE官网
  • OpenSTA
  • Siege
  • Siege是一个压力测试和评测工具,设计用于WEB开发这评估应用在压力下的承受能力

游戏

源码托管

经营

资源

金融/财务

搜索

  •  

最新评论