我开发了2个应用程序并在Websphere Aplication Server上发布它们。
由于我需要编写事件查看器上两个应用程序上发生的错误,因此我将log4j JAR文件放在Websphere Aplication Server的lib文件夹中,并成功加载文件os。
我还在两个应用程序的src root包下创建了log4j.properties文件,其中包含不同的变量名和源名称(“Application A”和“Application B”)。
当捕获一个execption时,它会被记录到事件查看器中。
问题是,即使在应用程序B上发生错误,所提供的源名称也是相同的“应用程序A”...
有人可以帮忙吗?
由于
答案 0 :(得分:0)
我不确定“具有不同变量名称和源名称的应用程序”是什么意思 - 您在两个应用程序中使用不同名称的记录器并直接输出到不同的appender?
但是,我看到你的配置存在一个问题:当你将你的log4j jar放入WAS lib文件夹时,它会加载你的应用程序常用的类加载器(一个bootstrap类加载器或扩展类加载器,取决于这个“lib”的位置) “目录是” - 这意味着log4j仅加载ONCE。考虑如何初始化log4j(使用静态代码部分),它也被初始化为ONCE,这意味着最多只读取一个log4j.properties。
尝试从WAS lib目录中删除log4j并将其与每个应用程序一起部署,查看它的位置。