使用Log4J进行简单日志操作

本文介绍了Log4J的基本配置方法及其在Java类和Web应用程序中的应用实例,展示了如何通过不同方式配置Log4J以及其日志记录的功能。
使用Log4J进行简单日志操作

1、配置
    Log4J的配置文件用于设置记录器的级别、存放器和布局,可以用key=value格式的设置或xml格式的设置信息。通过配置,可以创建出Log4J的运行环境。
   有几种方式可以配置Log4J:
   1)在程序中调用BasicConfigurator.configure()方法;
   2)配置放在文件里,通过命令行参数传递文件名字,通过PropertyConfigurator.configure(args[x])解析并配置;
   3)配置放在文件里,通过环境变量传递文件名等信息,利用Log4J默认的初始化过程解析并配置;
   4)配置放在文件里,通过应用服务器配置传递文件名等信息,利用一个特殊的servlet来完成配置。
  
   配置文件示例:
   log4j.rootLogger=INFO,A1,R
   log4j.appender.A1=org.apache.log4j.ConsoleAppender
   log4j.appender.A1.layout=org.apache.log4j.PatternLayout
   log4j.appender.A1.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss} [%c]-[%p] %m%n
   log4j.appender.R=org.apache.log4j.RollingFileAppender
   log4j.appender.R.File=d:/tomcat4.1/webapps/ck1907/logs/log4j.log
   log4j.appender.R.MaxFileSize=100KB
   log4j.appender.R.MaxBackupIndex=1
   log4j.appender.R.layout=org.apache.log4j.PatternLayout
   log4j.appender.R.layout.ConversionPattern=[%-d{yyyy-MM-dd HH:mm:ss}] %p %t %c - %m%n
  
   该配置文件设置了两个存放器:A1和R,日志级别是INFO(有INFO、DEBUG、WARN、ERROR等取值)。A1用于工作台输出,即可以直接在App server的工作窗口或者java应用程序的调试窗口输出;R用于可滚动的文件输出,设置了最大文件大小为100K,当达到这个最大值的时候会自动删除之前老的日志信息以存放新的日志。layout.ConversionPattern定义了输出格式・~~

 

 


2、应用举例
   1)Java类中使用Log4J:

 

 


   import org.apache.log4j.Logger;
   import org.apache.log4j.PropertyConfigurator;

 

 


   /**
    * Log4JTest.java
    * author:Ryan
    */

 

 


   public class Log4JTest{
      
       public static void main(String[] args){
           String configFile = "d:/log4j.properties";
           /*通过PropertyConfigurator解析配置文件并初始化Log4J配置*/           PropertyConfigurator.configure(configFile);
           Logger logger = Logger.getLogger(Log4JTest.class);

 

 


           logger.info("main() - init success...");
       }
   }
   工作台输出格式:
       2004-12-16 15:10:59 [webSite.servlet.RyanConfig]-[INFO] main() - init success...
   log文件输出格式:
       [2004-12-16 15:10:59] INFO main webSite.servlet.RyanConfig - main() - init success...

 

 

   2)Web application中使用Log4J:
   在web应用程序中使用Log4J,可以在一个随app server启动的servlet中完成初始化工作
   web.xml配置:
   <servlet>        ……
        <servlet-name>RyanConfig</servlet-name>
        <servlet-class>webSite.servlet.RyanConfig</servlet-class>
        <init-param>
            <param-name>log4j</param-name>
            <param-value>/WEB-INF/log4j.properties</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
        ……
   </servlet>

 


   程序代码片断:
   import java.io.InputStream;
   import java.io.IOException;

 

 

   import java.util.Properties;

 

 

   import javax.servlet.ServletException;
   import javax.servlet.http.HttpServlet;

 

 


   import org.apache.log4j.Logger;
   import org.apache.log4j.PropertyConfigurator;

 

 


   /**
    * RyanConfig.java
    * author:Ryan
    */

 


   public class RyanConfig extends HttpServlet {

 

 


       private static final Logger logger = Logger.getLogger(RyanConfig.class);      
       public void init() throws ServletException {
           String log4jConfig = getInitParameter("log4j");
           InputStream is = null;
           Properties pro = null;
           try{
               is = getServletContext().getResourceAsStream(log4jConfig);
               pro = new Properties();
               pro.load(is);
               /*也可以跟上面一样用String类型的文件名作为参数*/               PropertyConfigurator.configure(pro);
               logger.info("init() - init success...");
           }catch(IOException eio){
               logger.error("init()", eio);
           }
       }
   }
   工作台输出格式:
       2004-12-16 15:10:59 [webSite.servlet.RyanConfig]-[INFO] init() - init success...
   log文件输出格式:
       [2004-12-16 15:10:59] INFO main webSite.servlet.RyanConfig - init() - init success..

</P>

 
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值