Tomcat 7 は RHEL7 から catalina.out のログ出力を生成しません。

Tomcat 7 は RHEL7 から catalina.out のログ出力を生成しません。

Apache Tomcat 7.0がインストールされているRHEL7サーバーがあります。最近RHEL7.1にアップデートした後、$ {catalina.base} / logs / catalina.outのすべてのログ記録が停止しました。しかし、Journalctlの内部からログを受け取ります。

Journalctl -u tomcat と入力すると、ロギングが発生します。 catalina.outにログインする方法はありますか?

cat /usr/share/tomcat/logs/catalina.out
no output

journalctl -u tomcat

Aug 20 10:07:14 server.example.com server[26435]: at org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:549)
Aug 20 10:07:14 server.example.com server[26435]: at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:455)
Aug 20 10:07:14 server.example.com server[26435]: at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
Aug 20 10:07:14 server.example.com server[26435]: at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
Aug 20 10:07:14 server.example.com server[26435]: at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
Aug 20 10:07:14 server.example.com server[26435]: at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
Aug 20 10:07:14 server.example.com server[26435]: at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
...

ベストアンサー1

Jamieの答えは正しいです。 rsyslogがtomcatに何が起こったのかを記録するように強制できます。しかし、これは答えないなぜrhel 7のtomcat 7はcatalina.outにログインしません。そうであれば、なぜcatalina.outとcatalinaの両方に日付と一緒に記録するのですか(RPMを使用してインストールしていない場合)。

まず、過去7.0.42から、Red HatのスクリプトはRHEL 6の動作を模倣したので、catalina.outを使用しました。私が知っている限り、彼らは「フォーク」を使ってこれを提供しますsystemd。 7.0.56がリリースされたとき、彼らはそれを完全に変更し、/ usr / libexec / tomcatにTomcatをsimpleRunの代わりにモードで実行させる新しいスクリプトとラッパーを作成しましたforked。 systemdがPIDを制御してログにstdoutアクセスできるようにします。それでもファイルstderrはありますが、情報は通常よりも制限されています。catalina.$DATE.log/var/log/tomcatcatalina.out

次に、/etc/tomcat/logging.propertiesを見てみましょう。 catalina、localhost、管理者、ホスト管理者間で特定の方法でログを照合することがわかります。また、rsyslog機能のサポートと基本的にこれを「処理」する方法もあることがわかります。ConsoleHandlerファイルの内容にまとめられます。これを変更すると、ログの動作が変わります/var/log/tomcat

journalctl -u tomcatcatalina.outが持っている必要があるすべてを表示します。私が知る限り、/usr/libexec/tomcatのRed Hatラッパーを変更せずにすべてをcatalina.outに移動する信頼できる方法はありません。これらのスクリプトを変更して更新が発生すると、変更が上書きされます。

catalina.outが本当に必要な場合は、Jamieのrsyslogサンプル構成を使用してください。情報がいっぱいになるだけでなく、systemdログにも同じ情報があることに注意してください。

おすすめ記事