一个关于log4j的小问题.....

 所属目录:Java   |   类型:技术问答   |   时间:2007-05-21
 问题:

小弟第一次用log4j日志器,在struts项目里想打出日志内容到一个指定文件,配置如下:  
   
  log4j.rootlogger=info,console,file  
   
  log4j.appender.console=org.apache.log4j.consoleappender  
   
  log4j.appender.file=org.apache.log4j.rollingfileappender  
  log4j.appender.file.file=log.txt  
   
  log4j.appender.console.layout=org.apache.log4j.simplelayout  
   
  log4j.appender.file.layout=org.apache.log4j.patternlayout  
   
  logrj.appender.file.layout.conversionpattern=%t   %p   -   %m%n  
   
  1   请问生成的日志文件在什么地方?(书上说在web-inf目录下,可是找不到)  
  2   如何指定日志生成目录?

· 网友精彩回答:

发表者:jfresh_man

log4j.appender.file.file=log.txt  
   
  你这样的定义已经把你的日志文件输出到%tomcat_home%/bin目录里面了  
  建议直接使用绝对路径  
  log4j.appender.file.file=c:\\log.txt

发表者:caven

给你一个例子   ,在与elipse平级建立applog,在applog下建立logconfig,logdata,在logconfig下建立log4j.properties  
   
  log4j.properties  
  #log4j.rootlogger=[priority],appendername,appendername,...  
  #其中,priority是日志级别,可选值包括off、fatal、error、warn、info、debug、trace、all  
  #在这里定义了info级别,则应用程序中所有debug、trace、all级别的日志消息将不被打印出来  
  #appendername指定appender组件,用户可以同时指定多个appender组件  
   
  #log4j提供的appender有以下几种:  
  #org.apache.log4j.consoleappender:控制台  
  #org.apache.log4j.fileappender:文件  
  #org.apache.log4j.dailyrollingfileappender:每天产生一个日志文件  
  #org.apache.log4j.rollingfileappender:文件大小到达指定尺寸的时候产生一个新的文件  
   
   
  #log4j提供的layout有以下几种  
  #   org.apache.log4j.htmllayout   (以html表格形式布局)  
  #   org.apache.log4j.patternlayout   (可以灵活地指定布局模式)  
  #   org.apache.log4j.simplelayout     (包含日志信息的级别和信息字符串)  
  #   org.apache.log4j.ttcclayout   (包含日志产生的时间、线程和类别等信息)  
   
   
  #conversionpattern格式  
  #   %d     --产生日志的时间  
  #   %r     --自程序开始后消耗的毫秒数  
  #   %t     --表示日志记录请求生成的线程  
  #   %p     --表示日志语句的优先级别  
  #   %r     --与日志请求相关的类别名称  
  #   %c     --日志消息所在的类名  
  #   %m%n--表示日志消息的内容  
   
  #设置成根目录,所有包括debug以上级别的信息都打印出来到日志文件中  
  #log4j.rootlogger=debug,stdout    
   
  #设置为debug,表示只能打印出debug级别的信息,如果不想打印,就把debug级别调高  
  #printdebuginfo   关联到程序  
  log4j.logger.printdebuginfo=debug,d,c      
  #该行可屏蔽终端输出和终止debug输出到文件(记住要屏蔽记录输出到终端的全部三行)  
  #log4j.logger.printdebuginfo=info,d,c      
   
  #设置成info,表示只能打印出info级别的信息,如果不想打印,就把info级别调高  
  log4j.logger.printoperateinfo=info,i        
  #把该行屏蔽,即可终止记录用户所有操作  
  #log4j.logger.printoperateinfo=info,i    
   
  #设置成error,表示只能打印出error级别的信息,如果不想打印,就把error级别调高  
  log4j.logger.printerrorinfo   =error,e  
  #把该行屏蔽,即可终止记录用户所有操作  
  #log4j.logger.printerrorinfo   =info,e  
   
  #e(error)       记录所有错误  
  #i(info)         记录用户所有操作  
  #d(debug)       记录调试信息  
   
  #记录输出到终端  
  log4j.appender.c=org.apache.log4j.consoleappender  
  log4j.appender.c.layout=org.apache.log4j.patternlayout  
  log4j.appender.c.layout.conversionpattern=[%d{yyyy-mm-dd   hh:mm:ss}]%m%n  
   
  #===========记录调试信息========================================  
  #记录输出到文件  
  log4j.appender.d=org.apache.log4j.rollingfileappender  
  log4j.appender.d.maxfilesize=100kb  
  log4j.appender.d.maxbackupindex=1  
  #如果直接调用文件的缺省目录是context目录;如果在tomcat中调用缺省目录是context的上级目录或者tomcat\bin目录  
  log4j.appender.d.file=..\\applog\\logdata\\debug_log  
  log4j.appender.d.append=true  
  log4j.appender.d.layout=org.apache.log4j.patternlayout  
  log4j.appender.d.layout.conversionpattern=[%d{yyyy-mm-dd   hh:mm:ss}]%m%n  
   
   
  #===========记录用户所有操作(每天产生一个日志文件)=======================  
  log4j.appender.i=org.apache.log4j.dailyrollingfileappender  
  log4j.appender.i.file=..\\applog\\logdata\\info_log  
  log4j.appender.i.append=true  
  #log4j.appender.i.threshold=info  
  log4j.appender.i.datepattern   =   .yyyy-mm-dd  
  log4j.appender.i.layout=org.apache.log4j.patternlayout  
  log4j.appender.i.layout.conversionpattern=[%d{yyyy-mm-dd   hh:mm:ss}]%m%n  
   
   
  #===========记录所有错误(文件大小到达指定尺寸的时候产生一个新的文件)========  
  log4j.appender.e=org.apache.log4j.rollingfileappender  
  #日志文件的大小  
  log4j.appender.e.maxfilesize=100kb  
  #   保存一个备份文件  
  log4j.appender.e.maxbackupindex=1  
  #日志文件的名称  
  log4j.appender.e.file=..\\applog\\logdata\\error_log  
  log4j.appender.e.append=true  
  #log4j.appender.e.threshold=error  
  #设置输出格式  
  log4j.appender.e.layout=org.apache.log4j.patternlayout  
  log4j.appender.e.layout.conversionpattern=[%d{yyyy-mm-dd   hh:mm:ss}]%m%n  
   
  log.java  
  /*  
    *   created   on   2005-7-6  
    *  
    *   todo   to   change   the   template   for   this   generated   file   go   to  
    *   window   -   preferences   -   java   -   code   style   -   code   templates  
    */  
  package   com.wellhead.netmanage.util;  
   
  import   org.apache.log4j.*;  
  import   java.util.*;  
   
  /**  
    *   @author   administrator  
    *  
    *   todo   to   change   the   template   for   this   generated   type   comment   go   to  
    *   window   -   preferences   -   java   -   code   style   -   code   templates  
    */  
  public   class   log   {  
  private   static   logger   printdebuglog=logger.getlogger("printdebuginfo");  
  private   static   logger   printoperatelog=logger.getlogger("printoperateinfo");  
  private   static   logger   printerrorlog=logger.getlogger("printerrorinfo");  
   
  static   {  
   
  string   configurefile   =   system.getproperties().getproperty("user.dir")+"\\..\\applog\\logconfig\\"+"log4j.properties"   ;  
  propertyconfigurator.configure(configurefile);  
   
  }  
  public   static   void   printdebug(string   message)  
  {  
  printdebuglog.debug(message);  
  }  
   
  public   static   void   printinfo(string   message)  
  {  
  printoperatelog.info(message);  
  }  
   
  public   static   void   printerror(string   message)  
  {  
   
  printerrorlog.debug(message);  
  }  
   
  public   static   void   main(string[]   args)   {  
   
  log.printdebug("aaaaaaaaa");  
   
  }  
  }  
   
   
 

.
处理 SSI 文件时出错
© 2006-2008 All Rights Reserved