我有一个由 ejb.jar 档案组成的EAR。
我可以/应该将我的 log4j.xml 配置文件放在我的EAR中,以便为不同的EJB配置log4j吗?
以下是我的结构:
myEar
|-- myEjb1.jar
|-- myEjb2.jar
|-- myEjb3.jar
|-- lib
| -- myLib1.jar
| -- myLib2.jar
提前致谢!
答案 0 :(得分:8)
如果log4j由耳朵中的不同模块使用,则应将其放置在放在耳朵的lib目录中的jar中。但这不是很方便,因为每次更改日志级别时都需要重新组装耳朵并重新部署。
另一种选择是将log4j配置文件放在文件夹中,并将该文件夹添加到ear的类路径中。大多数应用服务器都提供此功能(例如WebSphere)。它不那么便携,但更易于管理:可以在不重新调配耳朵的情况下更改配置。
答案 1 :(得分:5)
让我们理清这一点:企业应用程序只有一个 log4j,无论它包含多少个EJB。同样,只有一个配置文件。如果需要为不同的EJB配置它,那么您的选择是在EJB代码中使用适当命名的记录器并在一个log4j.xml中管理它们。
Laurent对于把它放在哪里有一些有趣的建议(+1)。