在Weblogic中为特定应用程序配置日志文件

时间:2011-07-03 13:06:12

标签: java-ee log4j weblogic weblogic11g

我正在使用Weblogic 11g,EJB3.0。

我在这个问题上挣扎了好几个星期。

我有几个部署(无状态bean)。

每个人都有自己的log4j jar(log4j-1.2.15.jar),每个人都拥有自己的log4j.properties。

问题是:当我写入日志(调试/错误/信息等)时,所有部署的所有日志都写入相同的日志文件

这很烦人,因为我希望每个部署写入自己的日志文件(在其中配置log4j.properties)

这是我的log4j.properties文件:

  

log4j.rootCategory = debug,R

     

log4j.appender.R = org.apache.log4j.RollingFileAppender进行

     

下一行在每个项目中都有不同的路径+名称。

log4j.appender.R.File = d \:\ bea11 \ user_projects \域\ BASE_DOMAIN \自动部署\ MyProject的\日志\ MyProject.log

  

log4j.appender.R.MaxFileSize = 8192KB

     

log4j.appender.R.MaxBackupIndex = 100

     

log4j.appender.R.layout = org.apache.log4j.PatternLayout

     

log4j.appender.R.layout.ConversionPattern =%d {DD   MMM yyyy HH:mm:ss}%p%m%n

     

log4j.logger.org.hibernate =信息

     

log4j.logger.org.hibernate.SQL =调试

     

log4j.logger.org.hibernate.type =信息

     

log4j.logger.org.hibernate.tool.hbm2ddl =信息

     

log4j.logger.org.hibernate.cache =信息

我的项目在Myeclipse中分为三个依赖项:

项目名

ProjectNameEJB

ProjectnameWeb

我已经在Weblogic中安装了Exploded Archive

jar位于此dir路径下:ProjectName / ear / app-inf / lib / log4j-1.2.15.jar

位于根目录下的

和log4j.properties:ProjectName / log4j.properties

谢谢, 射线

2 个答案:

答案 0 :(得分:1)

必须在app-inf / classes

下找到properties.xml

和app-inf / lib下的log4j.jar

并确保在server / lib目录下没有log4j.jar。

答案 1 :(得分:0)

@rayman:您需要首先检查weblogic控制台中项目的类加载策略是什么...如果他们为Logger类共享相同的类加载器(因为每个类加载器的类是唯一的),那么它将使用相同的实例使用相同配置的记录器... ...您还可以在某个时刻在每个应用程序中调用以下内容来打印记录器使用的文件位置: -

((org.apache.log4j.RollingFileAppender)org.apache.log4j.Logger.getRootLogger().getAppender("R") ).getFile()