【发布时间】: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.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"])
【问题讨论】:
-
向我们展示您的日志记录设置位置。
-
@RobertMoskal 谢谢。我已经添加了我的 logback 配置,但提到这个配置正在另一台机器上运行。如果还有什么我可能遗漏的,请告诉我。
标签: java logging centos6 tomcat8 logback-groovy