【问题标题】:Centos 6: Java Application not Logging to var/logCentos 6:Java 应用程序不记录到 var/log
【发布时间】:2016-06-05 15:16:55
【问题描述】:

我们有一台最近在 OpenStack 中启动的 CentOs6 机器。我们公司应用程序的部署包括构建一个 war 文件并将其放置在 /usr/share/tomcat/webapps 中。我们已经将它部署到大约一个月前创建的其他 CentOs6 机器上,它会将应用程序日志记录到 /var/log/myAppName/specifiLogFile.log 中。它仅在不工作的新机器上出现(请注意假定旧机器具有相同的配置)。

我相信我们已经将范围缩小到服务器本身而不是应用程序。我们为其构建战争文件的其他项目部署到新框也应该记录到 /var/log/myOtherApp/otherLogFile.log,但不要。

我想知道是否有任何地方可以查看为什么没有在 /var/log/...中生成应用程序日志。这是什么原因造成的?

应用程序日志目录的权限为 660,并且正确的用户具有读写权限。

我尝试过的:

在 logback 中启用调试并调查以下日志中的问题:tomcat/logs/catalina.outtomcat/logs/localhost.2016-06-05.log , /var/log/messages

唯一的另一个区别是我们的旧应用运行的是 Java 7,而新的 CentOs 机器应该在 Java 8 上。即使升级到 Java 8 后问题仍然存在。

编辑: 包括我的 logback 配置,但我必须说这个配置在我大约一个月前创建的服务器上运行良好......我确信这与新服务器本身的一些配置有关。

import ch.qos.logback.classic.encoder.PatternLayoutEncoder
import ch.qos.logback.core.rolling.RollingFileAppender
import ch.qos.logback.core.rolling.TimeBasedRollingPolicy
import ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP

import static ch.qos.logback.classic.Level.DEBUG
import static ch.qos.logback.classic.Level.WARN
import static ch.qos.logback.classic.Level.INFO

scan("30 seconds")

appender("ROLLING", RollingFileAppender) {
  file = "/var/log/myApp/myApp.log"

  encoder(PatternLayoutEncoder) {
    pattern = "%date %level [%thread] %logger{10} [%file:%line] %msg%n"
  }

  rollingPolicy(TimeBasedRollingPolicy){
    // Rollover daily
    fileNamePattern = "/var/log/myApp/myApp%d{yyyy-MM-dd}.log.gz"

    // Delete the archived files older than 10 days
    maxHistory = 10
  }

}

root(DEBUG, ["ROLLING"])

【问题讨论】:

  • 向我们展示您的日志记录设置位置。
  • @RobertMoskal 谢谢。我已经添加了我的 logback 配置,但提到这个配置正在另一台机器上运行。如果还有什么我可能遗漏的,请告诉我。

标签: java logging centos6 tomcat8 logback-groovy


【解决方案1】:

假设您的日志配置工作正常,我猜这是权限问题:

您服务器上的目录/var/log 肯定存在,但请确保您的应用程序记录到的子目录存在(或者您的应用程序有权创建该子目录)。

为了测试该理论,我将确保目录/var/log/yourAppName 存在,然后运行sudo chmod 666 /var/log/yourAppName。完成后,重新启动应用程序并查看它是否在该目录中创建日志文件。

如果这有帮助,您可能需要重新访问该解决方案,并将 /var/log/yourAppName 的所有者设置为您的应用运行的用户,并且不允许将该目录读/写到世界。

【讨论】:

  • +1 我忘了提到权限也被检查了。所有者和组是正确的,权限设置为 660。我将编辑我的答案以包含此内容。谢谢!
猜你喜欢
  • 1970-01-01
  • 2015-08-25
  • 2022-10-07
  • 1970-01-01
  • 2022-06-13
  • 1970-01-01
  • 1970-01-01
  • 2018-12-17
  • 2010-10-11
相关资源
最近更新 更多