论坛首页 Java企业应用论坛

log4j超初级入门(weblogic+jbuilder2005)

浏览 12559 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2005-10-14  
Weblogic 8.14 + jbuilder2005中配置log4j 超低级入门

1. 在jbuilder2005中加入log4j.jar
Project à Project Properties à Required LibrariesàAddàNew
在New Library Wizard中添入Name=log4j   Location=JBuilder
点击Library paths 边上的Add
选择log4j.jar的路径c:\bea\weblogic81\common\lib\log4j.jar

2.
在相应的位置我的是(sms.util.Log4JInit)添加类Log4JInit.java,代码如下:
package sms.util;

import java.io.File;
import java.io.IOException;
import org.apache.log4j.PropertyConfigurator;
import javax.servlet.http.HttpServlet;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class Log4JInit extends HttpServlet {
  public void init() throws ServletException {
String prefix = getServletContext().getRealPath("/");
String file = getServletConfig().getInitParameter("log4j-config-file");

if (file != null) {
PropertyConfigurator.configure(prefix + file);
}
  }

  public void doGet(HttpServletRequest request,HttpServletResponse response)throws
  IOException, ServletException {}

  public void doPost(HttpServletRequest request,HttpServletResponse response)throws
  IOException, ServletException {}

  public void destroy(){
super.destroy();
  }
}
这段代码的意思是,在加载的过程中,程序会读取/WEB-INF/log4j.properties这个文件
这个文件就是本文的重点,也就是log4j的配置文件。
3. 在jbuilder2005中的web.xml中加入servlet
<servlet>
    <servlet-name>log4jinit</servlet-name>
    <servlet-class>sms.util.Log4JInit</servlet-class> (此处需要修改同上的路径)
    <init-param>
      <param-name>log4j-config-file</param-name>
      <param-value>/WEB-INF/log4j.properties</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>
4. 在jbuilder2005工程下面建立一个叫log4j.properties的文件,文件内容如下:

log4j.rootLogger=INFO, A_default,CONSOLE
##log4j.rootCategory=INFO, stdout, logfile
## Print
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.Threshold=DEBUG
log4j.appender.CONSOLE.Target=System.out
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n

## log
log4j.appender.A_default=org.apache.log4j.RollingFileAppender
##默认路径参考注释
log4j.appender.A_default.File=rootlog.log
log4j.appender.A_default.MaxFileSize=4000KB
log4j.appender.A_default.MaxBackupIndex=10
log4j.appender.A_default.layout=org.apache.log4j.PatternLayout
log4j.appender.A_default.layout.ConversionPattern=%d{ISO8601} - %p - %m%n
5. 代码中应用log4j
在需要输出日志信息的程序中添加如下代码:
//开始导入类
import org.apache.log4j.Logger;
。。。。。。
//在类中声明静态全局变量logger
public class AdminAction extends Action {
private static Logger logger = Logger.getLogger(AdminAction.class);
(AdminAction当然是你自己的得类名了)
//在需要输出日志的地方,根据情况不同添加如下代码:
logger.info(“This is my first log4j test.”);

6.编译 发布到 weblogic中去。运行程序就ok了。在你的域下面就有一个rootlog.log的日志文件了
   发表时间:2005-10-14  
我在使用 axis 作 webService 中,遇到了这个问题。
在用 log4j 记录日志的时候,当输出级别是 debug 的时候,不但自己程序的 debug 信息输出了,而且 axis 的debug日志信息也输出了。

我应该怎么设置 log4j 来解决这个问题??
0 请登录后投票
   发表时间:2005-10-16  
你看能否这样子:将log4j.properties
中的log4j.rootLogger=INFO, A_default,CONSOLE 改为
log4j.rootLogger=WARN, A_default,CONSOLE
然后在第5步中logger.info(“This is my first log4j test.”); 改为logger.warn(“This is my first log4j test.”);
0 请登录后投票
   发表时间:2005-10-16  
log4j.properties配置文件的部分语句注释 log4j.appender.A_default.File=rootlog.log的默认目录:
WSAD 在安装目录下,如:..\IBM\WebSphere Studio\Application Developer\v5.1.1。
Tomcat 在安装目录下,如:..\newsearch(20050429)\Tomcat
具体配置文件的内容解释如下:
# Set root logger level to DEBUG and its only appender to A1
#log4j中有五级logger
#FATAL 0
#ERROR 3
#WARN 4
#INFO 6
#DEBUG 7
#配置根Logger,其语法为:
#log4j.rootLogger = [ level ] , appenderName, appenderName, …
log4j.rootLogger=INFO, A1 ,R
#这一句设置以为着所有的log都输出
#如果为log4j.rootLogger=WARN, 则意味着只有WARN,ERROR,FATAL
#被输出,DEBUG,INFO将被屏蔽掉.
# A1 is set to be a ConsoleAppender.
#log4j中Appender有几层如控制台、文件、GUI组件、甚至是套接口服务器、NT的事件记录器、UNIX Syslog守护进程等
#ConsoleAppender输出到控制台
log4j.appender.A1=org.apache.log4j.ConsoleAppender
# A1 使用的输出布局,其中log4j提供4种布局. org.apache.log4j.HTMLLayout(以HTML表格形式布局)
#org.apache.log4j.PatternLayout(可以灵活地指定布局模式),
#org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串),
#org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息)

log4j.appender.A1.layout=org.apache.log4j.PatternLayout
#灵活定义输出格式 具体查看log4j javadoc org.apache.log4j.PatternLayout
#d 时间 ....
log4j.appender.A1.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss} [%c]-[%p] %m%n
#R 输出到文件 RollingFileAppender的扩展,可以提供一种日志的备份功能。
log4j.appender.R=org.apache.log4j.RollingFileAppender
#日志文件的名称
log4j.appender.R.File=log4j.log
#日志文件的大小
log4j.appender.R.MaxFileSize=100KB
# 保存一个备份文件
log4j.appender.R.MaxBackupIndex=1

log4j.appender.R.layout=org.apache.log4j.TTCCLayout
#log4j.appender.R.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss} [%c]-[%p] %m%n
0 请登录后投票
   发表时间:2005-10-17  
我把设成 info 的输出,那些 debug 的信息,自然就没有了。

可是,我这边自己的程序不想把一些 debug 级别的日志记录,变成 info级别的啊。

有人告诉我要 把我的的log4j.rootLogger改为log4j.logger.包名。。可是我没有成功。

我改后log4j的配置是:

#log4j.rootLogger=INFO,stdout,R
log4j.logger.com.webservice.test=DEBUG,stdout,R
log4j.addivity.org.apache=true

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

log4j.appender.stdout.layout.ConversionPattern=[%d{yyyy-MM-dd HH:mm} %-5p] - %m\n

log4j.appender.R=org.apache.log4j.RollingFileAppender
log4j.appender.R.File=D:/tmp/log/Test.log

log4j.appender.R.MaxFileSize=1024KB

log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=[%d{yyyy-MM-dd HH:mm} %-5p] - %m\n
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics