我正在使用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
谢谢, 射线
答案 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()