论坛首页 Java版

有关commons-logging与log4j配合使用的问题

浏览 4249 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
时间:2004-10-21
我按照csdn上面的一篇介绍进行配置。
首先,我配置了commons-logging.properties,其中只有一句:
[code:1]
org.apache.commons.logging.Log=org.apache.commons.logging.impl.Jdk14Logger
[/code:1]
然后我将Hibernate中的log4j.properties拷贝出来,并稍作修改:
[code:1]
log4j.rootLogger=DEBUG, stdout, file

### direct log messages to stdout ###
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%m%n

### direct messages to file hibernate.log ###
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=hibernate.log
log4j.appender.file.MaxFileSize=100KB
log4j.appender.file.MaxBackupIndex=1
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n

### set log levels - for more verbose logging change 'info' to 'debug' ###

log4j.logger.org.hibernate=info

### log just the SQL
#log4j.logger.org.hibernate.SQL=debug

### log JDBC bind parameters ###
log4j.logger.org.hibernate.type=info
[/code:1]

然后将这个log4j.properties和commons-logging.properties一起放在项目的/WEB-INF/classes目录下面。
在/WEB-INF/lib下,我也同时放置了commons-logging.jar和log4j.jar

然后我将项目部署到JBOSS下,发现在控制台的输出有所变化,在原本内容处,多了时间输出:(下面是一例)
[code:1]
10:52:22,890 INFO [STDOUT] 2004-10-21 10:52:22 net.sf.hibernate.impl.SessionFac
toryImpl <init>
信息: building session factory
[/code:1]
但是显然和我在log4j.properties配置的不一致,然后,我把我的项目中的log4j.properties文件删除,发现输出没有变化,表明我的这个配置文件没有起到作用,我想请问到底应该如何配置才能起效果呢?
   
时间:2004-10-21
很明显啊:

org.apache.commons.logging.Log=org.apache.commons.logging.impl.Jdk14Logger

你设的是Jdk14Logger!!!

可以不用建commons-logging.properties文件的,log4j.xml足够,因为commons-logging如果发现classpath存在log4j就优先用它

我也用commons-logging,我的WEB-INF/classes下只有log4j.xml
   
0 请登录后投票
时间:2004-10-21
引用
很明显啊:

org.apache.commons.logging.Log=org.apache.commons.logging.impl.Jdk14Logger

你设的是Jdk14Logger!!!

可以不用建commons-logging.properties文件的,log4j.xml足够,因为commons-logging如果发现classpath存在log4j就优先用它

我也用commons-logging,我的WEB-INF/classes下只有log4j.xml

我按照你的方法,把commons-logging.properties删除了,但是还是没有起作用,真不知道到底如何配置log4j,楼上能不能详细介绍一下配置的过程呢?
   
0 请登录后投票
时间:2004-10-22
log4j.logger.org.hibernate=info
换成
log4j.logger.net.sf.hibernate=info

再试试
   
0 请登录后投票
时间:2004-10-25
我根据log4j的文档,写了一个servlet做初始化:
[code:1]
package com.adt.util;

import javax.servlet.*;
import javax.servlet.http.*;
import org.apache.log4j.*;


/**
* @author Joa
*/
public class Log4jInit extends HttpServlet {

// Initialize global variables
public void init() throws ServletException {

String prefix = getServletContext().getRealPath("/");
String file = getInitParameter("log4j");
//if the log4j-init-file is not set, then no point in trying
if(file != null) {
PropertyConfigurator.configure(prefix+file);
}
}

//Process the HTTP Get request
public void doGet(HttpServletRequest request, HttpServletResponse response) {

}


}
[/code:1]

并在web.xml中加入了:
[code:1]
<servlet>
<servlet-name>log4jinit</servlet-name>
<servlet-class>com.adt.util.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>
[/code:1]

但是我把project部署到JBOSS下面以后,出现了:
ERROR: invalid console appender config detected, console stream is looping

这是什么问题?是不是和JBOSS本身的log4j.xml冲突了?这样的问题该如何解决呢?
   
0 请登录后投票
时间:2004-11-06
我在tomcat下使用log4j和common-logging的时候也有类似的问题,似乎,log4j.properties这个文件并没有被加载。
但是按照网上的一些资料,log4j在结合common-logging的情况似乎是不需要些配置文件加载的代码的,只要把两个配置文件放在classes/文件夹下,并且把两个包放在lib/下就可以了阿,可是为什么又不起作用呢。
   
0 请登录后投票
时间:2004-11-07
http://wiki.ivanshi.com/space/start/2004-11-07/2#JCL,用还是不用?
看看这个吧,我今天在JCL上的wiki看到的,然后,搜集了这些资料
   
0 请登录后投票
时间:2004-11-08
只需要在CLASSPATH中设置log4j.properties所在目录就可以了。
其他的都不必做。
   
0 请登录后投票
时间:2004-11-08
这个问题我也遇到过,不过似乎只是linux版本的tomcat/jdk有问题,windows版本的tomcat/jdk却表现良好。
在linux-tomcat下加下面的参数让commons-logging不要去找log4j,然后项目中直接使用log4j就没有问题了。
-Dorg.apache.commons.logging.Log=org.apache.commons.logging.impl.Jdk14Logger
   
0 请登录后投票
时间:2004-11-08
不知道大家有没有用过JBOSS,它默认是用log4j来输出日志的.我在项目中再配置一个log4j.properties死活成功不了.

不知道大家在JBOSS环境下是如何运用Log4J的
   
0 请登录后投票
论坛首页 Java版

跳转论坛: