| この記事の要点 |
|---|
|
ログファイルの場所
Tomcat の起動 / 停止ログを含む各種ログファイルは $CATALINA_HOME/logs/ ディレクトリに出力されます。
| ファイル名 | 内容 | 出力元 |
|---|---|---|
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 の違い
2 つは見た目が似ていますが、出力経路がまったく違います。
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
- Tomcat 起動スクリプト(
catalina.sh)がSystem.outとSystem.errをシェルレベルでリダイレクトしたもの - 出力対象: アプリ内の
System.out.println/System.err.println、printStackTrace()、Tomcat 起動初期のメッセージなど logging.propertiesのjava.util.logging.ConsoleHandler出力もここに混ざる- 自動ローテーションされない(無限に追記される)
- Windows サービスとして起動した場合は生成されない(procrun が独自のログに転送するため)
本番運用のローテーション設定
catalina.out は放置すると数 GB に肥大化するため、ローテーションが必須です。
方法 1: logrotate(Linux 推奨)
/etc/logrotate.d/tomcat を作成:
/opt/tomcat/logs/catalina.out {
copytruncate
daily
rotate 14
compress
missingok
notifempty
}
ポイント:
copytruncate: ファイルをコピーしてから 0 バイトに切り詰める(Tomcat 再起動不要)daily: 日次でローテーションrotate 14: 14 世代保持compress: gzip 圧縮
方法 2: 標準出力を分割(catalina.sh の書き換え)
bin/catalina.sh の CATALINA_OUT 設定を編集して、org.apache.juli.AsyncFileHandler 経由でローテーションさせる方法もあります(中級者向け)。
方法 3: アプリ側で log4j2 / SLF4J を使う(推奨)
そもそも System.out.println ではなく log4j2 や SLF4J + Logback を使えば、フレームワーク側でローテーション可能。catalina.out は最小限に抑えられます。
logging.properties のカスタマイズ
Tomcat のログ動作は $CATALINA_HOME/conf/logging.properties で制御します。主要設定:
# ハンドラの追加(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 サービス起動: procrun は標準出力を別ファイル(
tomcat-stdout.YYYY-MM-DD.log)にリダイレクト - 環境変数 CATALINA_OUT が変更されている:
setenv.shで別ファイルにリダイレクトされていないか確認 - パーミッション: tomcat ユーザがログディレクトリに書き込めない
Q. ログが文字化けする(日本語が ??? になる)
logging.properties で encoding = UTF-8 を明示。JVM 起動オプションに -Dfile.encoding=UTF-8 も追加。
Q. ログレベルを変えたのに反映されない
Tomcat 再起動が必要です。動的に変えたい場合は JMX 経由で操作するか、log4j2 等の外部ロギングフレームワークを使用。
関連記事
子ページ
子ページはありません
同階層のページ
- 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 / Maya)
- 7 Spring Frameworkのアノテーション一覧
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- プロジェクトをTomcatプロジェクトとして認識させる方法 2026-10-07 22:32:50
- MySQLの1366 Incorrect string value|Laravelの文字コード・絵文字エラー 2026-10-07 21:54:03
- curlの証明書ホスト名不一致|旧エラー51・現行60の確認と対処 2026-10-07 21:54:03
- LaravelのMassAssignmentException|fillableの原因と安全な対処 2026-10-07 21:54:03
- Eclipse で Tomcat の起動ログがコンソールに出ない時の確認手順 2026-10-07 21:54:02
- MySQLにおける中央値(Median)の導き方(バージョン8未満) 2026-10-07 13:49:45
- getInputForward 2026-10-07 13:41:15
- JSONから配列に変換 2026-10-07 13:41:15
- ビューから値をモデルに格納しコントローラーで受け取る方法 2026-10-07 13:23:41
- Laravelのテーブル作成と定義変更|マイグレーション・up/down・注意点 2026-10-07 13:23:41
- NumPy 配列に要素を追加する方法 (append / concatenate) 2026-10-07 13:23:41
- MariaDB・MySQLで現在日時を取得する方法|NOW・タイムゾーン・保存型 2026-10-07 13:13:36
- 【django】テンプレートで定数を使用する方法 2026-10-07 13:10:15
- Spring BootにおけるApplication.propertiesの環境依存設定の分割方法 2026-10-07 12:09:35
- Not supported for DML operations【Springエラー】 2026-10-07 11:09:38