| この記事の要点 |
|---|
|
ログファイルの場所
Tomcat 10.1の標準ファイルhandlerは${catalina.base}/logsへ出力します。CATALINA_HOMEはインストール先、CATALINA_BASEは実行インスタンスの基点で、同じとは限りません。実際のlogging.propertiesのdirectoryと起動引数を確認してください。次のファイル名は設定例で、すべての環境で全ファイルが生成される保証ではありません。
| ファイル名 | 内容 | 出力元 |
|---|---|---|
catalina.YYYY-MM-DD.log | Tomcat 本体の動作ログ(起動・停止・エラー) | java.util.logging (JUL) |
catalina.out | 標準出力 + 標準エラー(System.out.println / 例外スタックトレース等) | OS のシェルリダイレクト |
localhost.YYYY-MM-DD.log | localhost コンテキストのログ | JUL |
manager.YYYY-MM-DD.log | Manager アプリのログ | JUL |
host-manager.YYYY-MM-DD.log | Host Manager アプリのログ | JUL |
localhost_access_log.YYYY-MM-DD.txt | アクセスログ(HTTP リクエスト) | AccessLogValve |
catalina.log と catalina.out の違い
ファイルhandlerと標準出力の転送は別の経路です。ただし同じログイベントを両方のhandlerへ送る設定なら、同じメッセージが両方に現れます。
catalina.log(正確には catalina.YYYY-MM-DD.log)
- Tomcat 内部の
java.util.loggingハンドラ(1catalina.org.apache.juli.AsyncFileHandler)が出力 - 出力対象: Tomcat コアクラスのログ(起動完了メッセージ・ライフサイクルイベント・コネクタ起動など)
conf/logging.propertiesで出力レベル・フォーマットを制御- 日付ごとに自動ローテーションされる(
catalina.2026-05-15.logのように) - 同梱の
logging.propertiesはmaxDays = 90を設定しており、既定では 90 日より古いログが自動削除される(日数は変更可)
catalina.out
- Unixの
catalina.sh startでは標準出力/標準エラーを通常CATALINA_OUTへ転送します。既定はCATALINA_BASE/logs/catalina.out。catalina.sh runは前面へ出力し、IDE・コンテナ・サービスでは外側の実行方式も確認します - 出力対象: アプリ内の
System.out.println/System.err.println、printStackTrace()、Tomcat 起動初期のメッセージなど logging.propertiesのjava.util.logging.ConsoleHandler出力もここに混ざる- 標準startの通常ファイルへの転送自体は日次分割しません。外部の収集・ローテーション設定があれば挙動は変わります
- WindowsサービスではprocrunのStdOutput/StdError等を確認します。Unixのcatalina.out名や出力設定をそのまま前提にしません
本番運用のローテーション設定
通常ファイルへ追記する構成では容量・保持期間・回収先を決めます。既存の収集方式と重複した設定を追加せず、必要な監査ログの欠落条件も確認します。
方法 1: logrotate(Linux 推奨)
次はUnixで通常ファイルを出力している場合の設定例です。実パス・権限・既存の収集/ローテーションと保持要件を確認してから検証環境で検討します。copytruncateはコピーと切詰めの間のログを失う可能性があり、無欠落の方式ではありません。確認のためだけに本番の設定作成や強制ローテーションを実行しません。
/opt/tomcat/logs/catalina.out {
copytruncate
daily
rotate 14
compress
missingok
notifempty
}
ポイント:
copytruncate: 元のファイルを維持してコピー後に切り詰める。ログファイルの再openのための再起動を避ける用途ですが、コピーと切詰めの間の追記を失い得るdaily: 日次でローテーションrotate 14: 14 世代保持compress: gzip 圧縮
方法 2: 標準出力の出力経路を確認する
CATALINA_OUTのパス変更だけでは標準出力はJULIのAsyncFileHandlerへ変換されません。Tomcat 10.1のUnixスクリプトには外部コマンドへ渡すCATALINA_OUT_CMDもありますが、named pipe・外部コマンド・権限や障害時の扱いが別途必要です。サービスやコンテナの収集設定も含めて方式を選び、配布物のcatalina.shを直接書き換えることを通常の手順にしません。
方法 3: アプリ側で log4j2 / SLF4J を使う(推奨)
アプリがLog4j2やSLF4JとLogback等を使う場合は、その出力先とrolling設定を確認します。Console出力なら引き続き標準出力へ流れるため、ライブラリを採用しただけでcatalina.outのローテーションや縮小が実現するわけではありません。Tomcat内部のJULIや他アプリのログとも別に確認します。
logging.properties のカスタマイズ
通常は${catalina.base}/conf/logging.propertiesを使い、java.util.logging.config.fileで別ファイルが指定されていれば実際の指定を確認します。下の設定抜粋はhandlerの出力先/保持/encodingとlevelの例です。handlerの登録やloggerへの接続も必要で、サイズ上限の設定ではありません。
# ハンドラの追加(catalina.log の場所・サイズ)
1catalina.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs
1catalina.org.apache.juli.AsyncFileHandler.prefix = catalina.
1catalina.org.apache.juli.AsyncFileHandler.maxDays = 90
1catalina.org.apache.juli.AsyncFileHandler.encoding = UTF-8
# ログレベル(全体)
.level = INFO
# 特定パッケージのレベル
org.apache.catalina.startup.level = FINE
org.apache.coyote.level = WARNING
よくあるトラブル
Q. catalina.out にログが出ない
主な原因:
- Windowsサービス: 実際のStdOutput/StdError/LogPathを確認します。ファイル名や転送の有無をUnixの既定から推測しません
- 環境変数 CATALINA_OUT が変更されている:
setenv.shで別ファイルにリダイレクトされていないか確認 - パーミッション: tomcat ユーザがログディレクトリに書き込めない
Q. ログが文字化けする(日本語が ??? になる)
JULIの対象handler.encoding、アプリの出力側、標準出力の転送先と閲覧側の文字コードを別々に確認します。handlerのUTF-8設定やJVMのfile.encodingだけで全経路の文字化けが直るとは限りません。JDK/起動方式の既定値を確認し、ログ調査の初手でJVM設定を一律変更しません。
Q. ログレベルを変えたのに反映されない
対象プロセスが読んでいる設定ファイル、logger/handlerのlevelと出力経路を先に確認します。設定ファイルの編集と稼働中loggerへの反映は同じ操作ではありません。管理機能によるlevel変更とファイル設定の再読込みも区別し、対応が確認できない環境で調査のためだけに再起動やロギング基盤の入替えを行いません。
関連記事
- tomcatの起動確認方法
- CATALINA_HOMEの確認方法(Linux, Mac)
- Tomcatの起動/停止(Linux・Mac)
- Anaconda/Minicondaの起動方法(別製品)。Tomcatの操作手順ではありません
確認先: Tomcat 10.1 Logging、RUNNING、catalina.sh、Windowsサービス設定。logrotate manual。2026-10-28に公式資料を照合しました。実環境のTomcat・サービス・ログ回収やアプリの正常性を検証した記録ではありません。
子ページはありません
- tomcatインストール(CentOS)
- WARファイルのAutoDeploy設定
- tomcatの起動/停止(Linux, Mac)
- JRE(JVM)のJavaのバージョン確認方法
- エラー一覧
- CATALINA_HOMEの確認方法(Linux, Mac)
- 管理画面の開き方
- tomcatの起動確認方法
- tomcatの起動/停止ログとcatalina.log/catalina.outの違い
- CentOSにおけるポート開放方法
- Javaのバージョン変更方法(Mac編)
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript で base URL を取得する方法|window.location.origin
- 4 YouTube Data API v3 エラー一覧|403・400・404 の原因と対処
- 5 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 6 3Dグラフィックスのソフト一覧|Blender・Metasequoiaと用途別の選び方
- 7 Spring Frameworkのアノテーション一覧
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- Visual Studio「デザイナーを表示できません」エラーの原因と対処 2026-10-28 12:06:00
- SSH 認証に失敗しました。再試行してください の対処 2026-10-28 12:06:00
- SSH2 秘密鍵の読み込みに失敗しました の原因と対処 2026-10-28 12:06:00
- TeraTerm のよくあるエラーと対処法完全ガイド — Connection refused / 2026-10-28 12:06:00
- Visual Studio エラー一覧|コンパイルエラー・警告の確認方法と対処 2026-10-28 11:39:57
- Whitelabel Error Page の原因と消し方|Spring Boot のエラーページ 2026-10-28 11:39:57
- Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法 2026-10-28 11:39:57
- SQL WHERE 句完全ガイド 2026-10-28 11:39:57
- SQL JOIN 完全ガイド (INNER/LEFT/RIGHT/FULL OUTER) 2026-10-28 11:39:57
- tomcat の起動 / 停止ログと catalina.log・catalina.out の違い 2026-10-28 10:24:23
- Tomcat の起動確認方法 5 つ|localhost:8080・ポート・プロセス・ログ 2026-10-28 10:24:23
- Oracle 19c COMMITの使い方: 暗黙コミット・自動確定・応答不明時の確認 2026-10-28 09:59:09
- Oracle 19c DELETE文|削除対象の確認・COMMIT前の判断・ROLLBACKの条件 2026-10-28 09:59:09
- Oracle 19c INSERT文|INSERT ALL・SELECT・RETURNINGとMERGEの使い分け 2026-10-28 09:59:09
- Oracle 19cのトランザクション制御|COMMIT・ROLLBACK・分離レベルと接続設定 2026-10-28 09:59:09