我正在做以下事情:将几个遗留应用程序从 WebLogic 移植到 JBoss EAP 7。一些被移植的组件是 EJB。其他的是调用这些 EJB 的 servlet 应用程序。这些 EJB 部署在 ejb-jar 中。我知道我可以将整个事情包装到一个大的 EAR 文件中,但我们不想这样做。servlet 和 EJB jar 需要是可单独部署的组件。
然后是日志记录设置。我们正在使用 log4j2,我们希望保持独立于 JBoss 日志记录设置。我创建了一个 JBoss 模块,其中包含所有具有适当依赖关系的 log4j2 jar,并且日志记录有效。servlet 运行并记录、调用 EJB 并且它们工作。
唯一的问题是如何配置 EJB 的日志记录。在像 servlet 这样的 Web App 中,这很简单,只需在 web.xml 中指定 log4j 日志记录配置文件即可。ejb jar 的模拟是什么?我想不出办法。
我尝试了以下操作:将记录器/附加程序添加到 EJB 包的 servlet 应用程序的配置中,并指定一个新文件。它不起作用。确实会创建新的日志文件,但不会将任何内容写入日志文件。应该有输出,但是没有,所以很明显,当 EJB 运行时,它的 LogManager 没有使用 servlet 中指定的配置。
在部署在 JBoss EAP7 上的 EJB jar 中的 EJB 中指定 log4j2 配置的正确方法是什么?