Glassfish LOG4J 记录不同的应用

Glassfish LOG4J loggin diferent applications

我在同一个 glassfish 服务器中有很多应用程序(war、ejb),这些应用程序具有不同的 log4j 配置

app1.war -> log4j.properties

log4j.rootLogger=info, infcore
log4j.appender.infcore=org.apache.log4j.RollingFileAppender
log4j.appender.infcore.File=/var/log/app1info.log
log4j.appender.infcore.MaxFileSize=20000KB
log4j.appender.infcore.MaxBackupIndex=20
log4j.appender.infcore.layout=org.apache.log4j.PatternLayout
log4j.appender.infcore.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} [%5p] [%t] %c %x - %m%n

app2.jar -> log4j.properties

log4j.rootLogger=info, infoejb
log4j.appender.infoejb=org.apache.log4j.RollingFileAppender
log4j.appender.infoejb.File=/var/log/ejbinfo.log
log4j.appender.infoejb.MaxFileSize=20000KB
log4j.appender.infoejb.MaxBackupIndex=20
log4j.appender.infoejb.layout=org.apache.log4j.PatternLayout
log4j.appender.infoejb.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} [%5p] [%t] %c %x - %m%n

app3.war -> log4j.properties

log4j.rootLogger=info, infoapp2
log4j.appender.infoapp2=org.apache.log4j.RollingFileAppender
log4j.appender.infoapp2.File=/var/log/infoapp2.log
log4j.appender.infoapp2.MaxFileSize=20000KB
log4j.appender.infoapp2.MaxBackupIndex=20
log4j.appender.infoapp2.layout=org.apache.log4j.PatternLayout
log4j.appender.infoapp2.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} [%5p] [%t] %c %x - %m%n

我打电话给记录器:

protected static final Logger LOG = Logger.getLogger(JAXSecurutyValidation.class);

问题是信息只记录在一个文件ejb中,其他文件都没有创建。

我该如何解决?

已解决 我找到了解决方案,非常简单地更新到 glasfish 5 并且一切正常,谢谢。

也许这可以帮到你:

String log4jfile = "log4 file path";
PropertyConfigurator.configure(log4jfile);

您可以为每个应用程序调用每个 log4j 文件。