【问题标题】:Log4J application.log file not getting written toLog4J application.log 文件没有被写入
【发布时间】:2012-01-16 04:04:11
【问题描述】:

按照http://www.playframework.org/documentation/1.2.4/production#logging 的说明,我在我的 conf/ 目录中实现了一个 log4j.properties 文件。

它在我的工作站本地工作,我的日志输出停止出现在我的控制台中并开始出现在我的 application.log 文件中。这是正确/预期的行为。

但是,这个相同的应用程序一旦复制到我的生产服务器就不会记录。 application.log 为空并保持为空。

这一切都在 centOS linux 上。

有什么想法吗?

提前致谢, 乔什

【问题讨论】:

  • 你是否在生产服务器上设置了这个 vm 参数 -Dlog4j.configuration=(path to log4j.xml or log4j.properties) 在生产服务器上
  • 您是否使用了日志的完整路径?您确定应用程序在您认为的位置运行吗?您是否尝试过删除日志文件并再次运行?日志文件是否重新创建?
  • 解释如何设置的文章有一个我不明白的评论,也许这是相关的? “上面的日志示例假设 conf 在类路径中,这就是为什么在 application.conf 中设置 application.log.path=/log4j.properties 的原因。但是默认播放包中没有将 conf 添加到类路径中。所以添加它将开始工作,即将创建日志文件“

标签: java linux log4j playframework centos


【解决方案1】:

您的应用程序是否有权写入 application.log 文件?也许java进程是在写权限不足的用户下启动的。

【讨论】:

  • 我不知道。不幸的是,我不是 Linux 人。我不确定权限如何在 Linux 上工作,但仍在学习中。而且我不确定“用户”播放或 java 以什么身份运行。
  • 如果您认为这可能是权限问题,我可以请我设置环境的 linux ops 团队调查该角度。
  • 在我的职业生涯中,我在 linux 中可能遇到过一百个与权限相关的错误。因此,当症状是“在 Windows 上工作,而不是在 Linux 上工作”时,我首先检查权限。
  • 感谢您的提示,我会调查这个角度。
  • 顺便说一句,这不是权限问题。对所有人开放读写,我不知道为什么 play 无法写入它的日志文件。有人吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-11-19
  • 1970-01-01
  • 2016-01-30
  • 2014-08-15
  • 1970-01-01
  • 2015-06-29
相关资源
最近更新 更多