5

我最近接手了一个使用在 AIX 下运行的 websphere 和 log4j 的 Web 应用程序项目。为了创建一个开发环境,我在 windows 中设置了所有组件,使用 eclipse 编译一个 WAR 文件并部署它。

除了未创建日志文件外,一切正常。我更改了 log4j.properties 中的日志文件,如下所示,并授予每个人对该目录的完全访问权限:

log4j.appender.F1.File=/abc/def/logs/admin.log

log4j.appender.F1.File=c:/logs/admin.log

我还能检查什么?

我创建了一个简单的独立测试应用程序,它使用相同的 log4j.properties,它可以创建日志文件,但是当 servlet 部署到 websphere 时,它​​不起作用。请帮忙!谢谢!

4

3 回答 3

4

好的,我认为这篇文章应该对您有所帮助。WebSphere CE 似乎默认使用 log4j 并使用全局属性文件对其进行控制。有一节介绍如何使用特定于应用程序的属性文件。

于 2011-10-03T17:31:26.903 回答
1

这是我尝试解决类似问题的方法。

  1. 打开 log4j 调试以查看它实际从哪里获取文件。您需要获取哪个文件的证据(因此打开调试是一项有价值的活动)这为您提供了有关 log4j 尝试查找配置文件的信息。

    -Dlog4j.debug=true

  2. 我不会硬编码代码中的 log4j 位置。相反,我会使用log4j.configurationSystem 属性并在 JVM 参数中声明它。这样,即使我不需要触摸我的代码。

    -Dlog4j.configuration=file:///home/manglu/log4j.properties

无论我使用哪种运行时服务器(无论是 Tomcat 还是 WAS CE 或 WAS),我都会使用这种方法

希望这可以帮助

于 2011-10-04T02:02:23.803 回答
0

我建议您使用服务器上设置的环境变量,如下所示:

您必须访问服务器的管理控制台。在自定义属性下

server_path=/abc/def/logs

在你的 log4j 中,使用这个:{$server_path}/log.txt

确保运行应用程序的用户有权访问该目录。

于 2011-10-02T16:21:03.583 回答