0

我正在开发 2 个应用程序并将它们发布到 Websphere Application Server 上。

由于我需要在事件查看器上编写两个应用程序上发生的错误,我将 log4j JAR 文件放在 Websphere Aplication Server 的 lib 文件夹中,并且文件 os 被成功加载。

我还在两个应用程序的 src 根包下创建了 log4j.properties 文件,这些应用程序具有不同的变量名称和源名称(“应用程序 A”和“应用程序 B”)。

当一个 execption 被捕获时,这两种情况都会被记录到事件查看器中。

问题是即使错误发生在应用程序 B 上,显示的源名称也是相同的“应用程序 A”...

任何人都可以帮忙吗?

谢谢

4

1 回答 1

0

我不确定您所说的“具有不同变量名称和源名称的应用程序”是什么意思——您在两个应用程序中使用不同名称的记录器并将输出直接输出到不同的附加程序?

不过,我发现您的配置存在一个问题:当您将 log4j jar 放入 WAS lib 文件夹时,它会加载两个应用程序通用的类加载器(引导类加载器或扩展类加载器,具体取决于此“lib”目录的位置) — 这意味着 log4j 只加载一次。考虑到 log4j 是如何初始化的(使用静态代码部分),它也被初始化一次,这意味着最多读取一个 log4j.properties。

尝试从 WAS lib 目录中删除 log4j 并将其部署到每个应用程序中,看看它在哪里得到你。

于 2011-09-05T10:32:58.483 回答