在JBoss 7.1.1下使用应用程序的Log4J配置

我在使用我的XML log4j配置文件中定义的appender进行日志记录时遇到问题。

我在我的EAR的META-INF文件夹上创建了jboss-deployment-structure.xml ,没有成功。

jboss-deployment-structure.xml结构是:

 false       

我甚至尝试编辑我的standalone.conf.bat文件,添加以下行:

 set "JAVA_OPTS=%JAVA_OPTS% -Dorg.jboss.as.logging.per-deployment=false" 

我的应用程序部署如下:

 -> MyAppEAR.ear -> META-INF -> MANIFEST.MF -> MyAoo.war -> META-INF -> MANIFEST.MF -> jboss-deployment-structure.xml -> WEB-INF -> web.xml -> lib -> log4j-1.2.17.jar -> --- -> classes -> log4j.xml -> ... 

我注意到以下错误:

  • 忽略子部署中的jboss-deployment-structure.xml。 jboss-deployment-structure.xml仅针对顶级部署进行解析。

我甚至试过从JBOSS 7.1.0迁移到7.1.1

请帮忙!

谢谢


感谢詹姆斯的收获。

我做了你说的,并将jboss-deployment-structure.xml文件移动到MyAppEAR.ear / META-INF

我注意到这种方式的exception:

 jboss-deployment-structure.xml in subdeployment ignored. jboss-deployment-structure.xml is only parsed for top level deployments. 

……不会发生。 我不知道这是否意味着文件被解析了……我怎么知道?

尽管有这种新行为,我的log4j.xml配置文件仍未加载,并且使用的记录器仍然是Log4J。

我知道这是因为我写信给控制台:

 System.out.println(Logger.getRootLogger().getClass().toString()) 

……得到了:

 class org.jboss.logmanager.log4j.BridgeLogger 

我也尝试过:

  • 将我的log4j.xml移动到MyAppEAR.ear / META-INF
  • standalone.conf.bat中删除不必要的-Dorg.jboss.as.logging.per-deployment = false
  • 从我的jboss-deployment-structure.xml中删除插槽

还有什么想法吗?

谢谢

您好RedEagle看到我测试的以下配置及其正常工作……
步骤1创建一个新模块

jboss-as-7.1.1.Final/modules/com/company/mylog/main/

  -module.xml -log4j-1.2.14.jar Content of module.xml          

步骤2现在在my.ear / META-INF /

  -jboss-deployment-structure.xml -MANIFEST.MF 

jboss-deployment-structure.xml的内容

                   

MANIFEST.MF的内容

  Manifest-Version: 1.0 Dependencies: com.company.mylog 

MyLogger.java的第3步内容

 public static Logger getLogger(String name) { Logger logger= LogManager.getLogger(name); PropertyConfigurator.configure("log4j.properties"); //Path to log4j.properties as many option available in my case for testing i used static path /home/gyani/log4j.properties return logger; } 

步骤4这是log4j.properties

 log4j.rootLogger=info,gyani log4j.appender.gyani=org.apache.log4j.RollingFileAppender log4j.appender.gyani.File=/home/gyani/myserverlog.log log4j.appender.gyani.Append=true log4j.appender.gyani.MaxFileSize=100000KB log4j.appender.gyani.MaxBackupIndex=10 log4j.appender.gyani.layout=org.apache.log4j.PatternLayout log4j.appender.gyani.layout.ConversionPattern=[%d{MMM d HH:mm:ss yyyy}] [%-5p] [%c]: %m%n 

您的jboss-deployment-structure.xml需要位于MyAppEAR.ear/META-INF目录中。 对于这种情况,也不需要slot属性。

在JBoss AS 7.1.1.Final中也没有使用-Dorg.jboss.as.logging.per-deployment=false ,但它也没有伤害任何东西。