我的目的是在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 日志中看到日志。
如何区分模块之间的日志记录?
答案 0 :(得分:0)
Log4J在类加载器级别保留其配置。 如果两个JEE模块共享一个类加载器,则它们将在运行时具有一个Log4J配置。
为了分隔模块之间的日志记录,您需要: