0

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

我为这个问题苦苦挣扎了好几个星期。

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

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

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

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

这是我的 log4j.properties 文件:

log4j.rootCategory=调试,R

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

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

log4j.appender.R.File=D\:\bea11\user_projects\domains\base_domain\autodeploy\MyProject\logs\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=info

log4j.logger.org.hibernate.tool.hbm2ddl=info

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

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

项目名

项目名称EJB

项目名称Web

我已经在 Weblogic 中安装为 Exploded Archive

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

和位于根目录下的 log4j.properties:ProjectName/log4j.properties

谢谢,雷

4

2 回答 2

1

必须在 app-inf/classes 下找到 properties.xml

和 app-inf/lib 下的 log4j.jar

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

于 2011-07-04T11:42:21.067 回答
0

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

((org.apache.log4j.RollingFileAppender)org.apache.log4j.Logger.getRootLogger().getAppender("R") ).getFile()
于 2011-07-04T11:44:37.203 回答