3

我无法想象我的问题对我的情况如此具体,但到目前为止我没有看到任何类似的问题。

我希望能够在我的 .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。

必须有更好的方法,对吧?

4

1 回答 1

3

只需将 log4j.properties 添加到 weblogic 的 classpath 中,并删除 war 和 ear 中的 log4j.properties 文件即可。

您可以在控制台中执行此操作。转到服务器名称 - 配置 - 服务器启动

现在将 log4j.properties 的目录添加到您的类路径中。您的应用程序现在将使用您耳外的 log4j.properties 文件。

于 2010-02-01T06:09:09.907 回答