我的目的是在JEE 5 Web应用程序(JBoss 5.1)中将REST和EJB之间的log4j配置分开。
对于REST模块,我使用ServletContextListener
接口:
public void contextInitialized(ServletContextEvent sce) {
PropertyConfigurator.configure("logfile");
}
对于EJB模块,我使用的是StartupBeanManagement
接口:
@Override
public void start() throws Exception {
logger.info("starting configuration bean");
final String env = System.getProperty("env");
configureLog(logFilePrefix.replace("{0}", env));
}
但是,如果两个模块都部署在同一个容器上,我只能在专用的REST日志上看到日志。
如何在模块之间分离日志记录?
Log4J在类加载器级别保持其配置。如果两个JEE模块共享一个类加载器,它们将在运行时具有单个Log4J配置。
为了分离模块之间的日志记录,您需要: