丄諦啲仇魜ヤ
如 果 敌 人 让 你 生 气 , 那 说 明 你 没 有 胜 他 的 把 握!
posts - 6,comments - 56,trackbacks - 1
 Logger 对象用来记录特定系统或应用程序组件的日志消息。一般使用圆点分隔的层次名称空间来命名 Logger。

一 、 java.util.logging.Logger   
        用某个 getLogger 工厂方法来获得 Logger 对象
         Logger log=Logger.getLogger(this.getClass().getName());

二、 org.apache.log4j.Logger

       Logger log=Logger.getLogger(Hello.class);


****************************************************************************************

使用Log4j,第一步就是获取日志记录器,这个记录器将负责控制日志信息。其语法为:

  public static Logger getLogger( String name)

  通过指定的名字获得记录器,如果必要的话,则为这个名字创建一个新的记录器。
       Name一般取本类的名字,比如:

  static Logger logger = Logger.getLogger ( ServerWithLog4j.class.getName () )

  ②读取配置文件

  当获得了日志记录器之后,第二步将配置Log4j环境,其语法为:

        BasicConfigurator.configure (): 自动快速地使用缺省Log4j环境。
  PropertyConfigurator.configure ( String configFilename) :读取使用Java的特性文件编写的配置文件。

例:PropertyConfigurator.configure(".\\src\\log4j.properties")
  DOMConfigurator.configure ( String filename ) :读取XML形式的配置文件。

  ③插入记录信息(格式化日志信息)

  当上两个必要步骤执行完毕,就可轻松地使用不同优先级别的日志记录语句插入到您想记录日
       志的任何 地 方,其语法如下:

  Logger.debug ( Object message ) ;
  Logger.info ( Object message ) ;
  Logger.warn ( Object message ) ;
  Logger.error ( Object message ) ;

在web程序中使用log4j注意问题

1、    由于jsp或servlet在执行状态时没有当前路径概念,所有使用PropertyConfigurator.configure(String)语句找log4j.properties文件时要给出相对于当前jsp或servlet的路径转化成为一个绝对的文件系统路径。方法是使用 servletcontext.getrealpath(string)语句。例:

//得到当前jsp路径

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

//读取log4j.properties

PropertyConfigurator.configure(prefix+"\\WEB-INF\\log4j.properties");

2、相应的log4j.properties设置某个属性时也要在程序中设置绝对路径。例:

log4j.appender.R.File属性设置日志文件存放位置。我们可以用读写.properties配置文件的方法进行灵活设置。


*********************************************************

一个实例:
一:

配置一个名为log4j.properties 文件,放到项目的src文件下面即可
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:/env/environment/webEnv/WEB-INF/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=%p %t %c - %m%n
log4j.appender.R.layout.ConversionPattern=%d %-5p [%t] (%13F:%L) %3x - %m%n

二:
在src下建一个初始化的servlet让程序启动时加载log4j.properties文件

import javax.servlet.http.HttpServlet;
import org.apache.log4j.Logger;
import org.apache.log4j.PropertyConfigurator;

public class Log4jInit extends HttpServlet {

 private static final long serialVersionUID = 1L;

 public void init() {       
  String prefix =  getServletContext().getRealPath("/");       
  String file = getInitParameter("log4j");
 
  // if the log4j-init-file is not set, then no point in trying       
  System.out.println("- Log4j start");       
  
  if(file != null) {         
   PropertyConfigurator.configure(prefix+file);       
  }
  Logger _logger = Logger.getLogger (Log4jInit.class);
  _logger.info("- Log4j Test Successfully!");
 }
}

 三:在web.xml中配置这个Log4jInit .java这个servlet


<servlet>
  <servlet-name>log4jlog4j-init</servlet-name>
  <servlet-class>Log4jInit</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>





posted on 2008-01-08 22:39 Crying 阅读(235) 评论(0)  编辑  收藏 所属分类: JAVA基础

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


网站导航: