我无法想象我的问题对我的情况如此具体,但到目前为止我没有看到任何类似的问题。
我希望能够在我的 .ear 包装之外指定一个 log4g.properties 文件,以便更容易更改日志记录级别而无需重新包装 ear。实际上,这样做的最紧迫的动机是我们小组已经建立的将 log4j 属性文件放在耳朵之外的约定,因此绕过这个限制(通过将 log4j.properties 文件放在 APP-INF/classes 目录, 或耳根等) 不适用。
ear 包含一个无状态 EJB,它委托给一系列 Spring POJO 来完成其行为。
我看到我小组中的其他人在 EAR 中部署了一个 WAR 文件,其唯一职责是使用上下文侦听器从指定的(外部)路径加载 log4j 属性文件。尽管路径在 EAR 的“外部”,但它仍然在类路径中。例如,文件夹 /config 位于类路径上,WAR 使用上下文侦听器从 /config/appname/log4j.properties 加载 log4j.properties。
对我来说,使用其唯一目的是加载 log4.properties 文件的 WAR 是一种 hack/overkill。
必须有更好的方法,对吧?