最近OpenStackでスピンアップされたCentOs6マシンがあります。当社のアプリケーションのデプロイは、war ファイルを作成して /usr/share/tomcat/webapps に配置することで構成されます。約 1 か月前に作成された他の CentOs6 マシンにデプロイし、アプリケーション ログを/var/log/myAppName/specifiLogFile.logに記録します。動作していないのは新しいマシンだけです (古いマシンは同じ構成であると想定されていることに注意してください)。
アプリケーションではなく、サーバー自体に絞り込んだと思います。新しいボックスにデプロイされる war ファイルをビルドする他のプロジェクトも/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 にアップグレードした後でも、問題は解決しません。
編集: ログバック構成を含めますが、この構成は約1か月前に作成したサーバーで正常に機能すると言わざるを得ません...これは、新しいサーバー自体の構成に関係していると確信しています。
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"])