为什么Tomcat STDOUT总是指向/ dev / null?

时间:2011-04-13 15:58:47

标签: java tomcat log4j

我们很高兴运行三台CentOS服务器,每台服务器都在Tomcat实例(UAT,Demo和Production)上部署了相同的应用程序。我们在应用程序中使用Log4j输出到标准CATALINA_HOME / logs / catalina.out文件。这在UAT和Demo服务器上运行良好,但在生产服务器上,我们在此文件中输出直到启动过程结束,但是没有输出任何应用程序日志记录。

使用LSOF我可以看到STDOUT总是指向/ dev / null。即使用>>显式启动Tomcat也是如此$ CATALINA_OUT 2>& 1&附加到它,它最终指向/ dev / null。我可以在其他服务器上看到它指向正确的catalina.out文件。

我已经在服务器上重新部署了tomcat,并直接从工作的UAT实例中复制了配置文件,现在我正在摸不着头脑。有什么想法吗?

2 个答案:

答案 0 :(得分:1)

你是如何“以>> $ CATALINA_OUT 2>& 1&&添加到它上面”启动Tomcat“?

您是否100%确定没有人修改bin/startup.shbin/catalina.sh来添加/dev/null行为?

与您的核心问题无关,但我强烈建议使用log4j配置写入文件(FileAppender)而不是登录标准输出 - 这为您提供了根据日期滚动文件的选项/ size / etc,非常容易改变位置等。登录标准输出并不能提供这种灵活性。

答案 1 :(得分:0)

您有类似的设置,可以正常工作;要做的是找出那些没有的东西有什么不同。对以下文件执行diff:

  • CONF / logging.properties
  • 仓/ startup.sh
  • 仓/ catalina.sh

同样比较:

  • 拥有Tomcat进程的用户以及该用户所属的组。
  • 记录目录的文件所有权和权限。