Servlets Websphere中的Log4j

Servlets Websphere中的Log4j,servlets,log4j,websphere,websphere-ce,Servlets,Log4j,Websphere,Websphere Ce,我最近接管了一个web应用程序项目,该项目使用在AIX下运行的websphere和log4j。为了创建一个开发环境,我在windows中设置了所有组件,使用eclipse编译并部署了WAR文件 除未创建日志文件外,所有操作都正常。 我更改了log4j.properties中的日志文件,如下所示,并授予每个人对目录的完全访问权限: log4j.appender.F1.File=/abc/def/logs/admin.log 到 我还能查什么 我创建了一个简单的独立testapp,它使用相同的lo

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

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

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

我还能查什么


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

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

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

服务器路径=/abc/def/logs

在log4j中,使用以下命令:{$server_path}/log.txt


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

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

以下是我为解决类似问题所做的尝试

  • 启用log4j调试以查看它实际从何处提取文件。您需要获取哪个文件的证据(因此打开调试是一项有价值的活动),这为您提供了有关log4j在查找配置文件时尝试执行的操作的信息

    -Dlog4j.debug=true

  • 我不会在代码中硬编码log4j位置。相反,我 将使用
    log4j.configuration
    系统属性,并在 JVM参数。这样,即使我不需要触摸我的代码

    -Dlog4j.配置=file:///home/manglu/log4j.properties

  • 无论我使用什么运行时服务器(Tomcat、WASE或WAS),我都会使用这种方法


    希望这对您有所帮助

    谢谢您的回复。我对websphere完全陌生,设置env的正确方法是什么?我通读了整个管理控制台,但没有找到?我最好的猜测是在C:\Program Files\IBM\WebSphere\AppServerCommunityEdition\bin中设置env var,并按照建议更改log4j,这也不起作用。变量的设置是在服务器-进程定义-自定义属性下完成的。我没有在服务器下获得“进程定义”,只有信息,Java系统信息,服务器日志、关机、Web服务器、线程池等。我在windows中使用Community Edition,控制台在@John:中,所以它不是真正的WebSphere,而是Apache Geronimo。感谢home,我真的不知道,我使用了IBM WebSphere communityEdition,也许它使用了Apache Geronimo。无论如何,我只想从log4j创建日志文件,但失败了:~(您是否将log4j.properties放在WAR文件的WEB-INF/classes中?是否在文件系统的另一个位置查找admin.log?stdout或stderr是否记录日志(我不知道它们在CE中的位置)显示任何与log4j相关的错误?您所做的应该可以,所以我猜log4j.properties文件没有被使用。是的,log4j.properties在WAR文件的WEB-INF/类中。我想log4j.properties是可以的,因为我更改了输出模式,它对控制台输出起作用。log4j.properties在其中,但不知何故它不是真的我强制执行了该代码并正在工作,但是如何让tomcat在不使用硬编码的情况下使用WEB-INF/classess中的代码呢?代码:PropertyConfigurator.configure(“C:\\test\\log4j.properties”);谢谢Manglu,在哪里指定该开关?很抱歉我的新手问题!在jvm参数中。-D将把文件的引用放在log4j中。请参阅在google中为您使用的服务器设置jvm参数。我在应用程序中使用anove方法。我可以在自定义属性中提供文件位置而不是jvm参数吗。我正在使用WebSphere6.1Thanks dbreaux,太棒了!正是这个问题!对于一个新手来说,了解所有这些真的很难,现在开始学习如何制定部署计划,叹气!
    log4j.appender.F1.File=c:/logs/admin.log