我们有一台最近在 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.out、tomcat/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"])