tomcatでcatalina.outログをカットする3つの方法の詳細な説明

tomcatでcatalina.outログをカットする3つの方法の詳細な説明

1. ログセグメンテーションのためのLog4j

1) log4j-1.2.17.jar、tomcat-juli.jar、tomcat-juli-adapters.jar の 3 つのパッケージを準備し、tomcat の lib ディレクトリまたはプロジェクトの WEB_INF/lib に配置します。

2) libディレクトリに新しいlog4j.propertiesファイルを作成し、次の内容を追加します。

log4j.rootLogger = INFO、CATALINA
 
# すべてのアペンダーを定義する
log4j.appender.CATALINA = org.apache.log4j.DailyRollingFileAppender
log4j.appender.CATALINA.File = ${catalina.base}/logs/catalina
log4j.appender.CATALINA.Append = true
log4j.appender.CATALINA.Encoding = UTF-8
# ログを1日1回ロールオーバーする
log4j.appender.CATALINA.DatePattern = '.'yyyy-MM-dd'.log'
log4j.appender.CATALINA.layout = org.apache.log4j.PatternLayout
log4j.appender.CATALINA.layout.ConversionPattern = %d [%t] %-5p %c- %m%n
 
log4j.appender.LOCALHOST = org.apache.log4j.DailyRollingFileAppender
log4j.appender.LOCALHOST.File = ${catalina.base}/logs/localhost
log4j.appender.LOCALHOST.Append = true
log4j.appender.LOCALHOST.Encoding = UTF-8
log4j.appender.LOCALHOST.DatePattern = '.'yyyy-MM-dd'.log'
log4j.appender.LOCALHOST.layout = org.apache.log4j.PatternLayout
log4j.appender.LOCALHOST.layout.ConversionPattern = %d [%t] %-5p %c- %m%n
 
log4j.appender.MANAGER = org.apache.log4j.DailyRollingFileAppender
log4j.appender.MANAGER.File = ${catalina.base}/logs/manager
log4j.appender.MANAGER.Append = true
log4j.appender.MANAGER.Encoding = UTF-8
log4j.appender.MANAGER.DatePattern = '.'yyyy-MM-dd'.log'
log4j.appender.MANAGER.layout = org.apache.log4j.PatternLayout
log4j.appender.MANAGER.layout.ConversionPattern = %d [%t] %-5p %c- %m%n
 
log4j.appender.HOST-MANAGER = org.apache.log4j.DailyRollingFileAppender
log4j.appender.HOST-MANAGER.File = ${catalina.base}/logs/host-manager
log4j.appender.HOST-MANAGER.Append = true
log4j.appender.HOST-MANAGER.Encoding = UTF-8
log4j.appender.HOST-MANAGER.DatePattern = '.'yyyy-MM-dd'.log'
log4j.appender.HOST-MANAGER.layout = org.apache.log4j.PatternLayout
log4j.appender.HOST-MANAGER.layout.ConversionPattern = %d [%t] %-5p %c- %m%n
 
log4j.appender.CONSOLE = org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.Encoding = UTF-8
log4j.appender.CONSOLE.layout = org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern = %d [%t] %-5p %c- %m%n
 
# どのロガーがどのアペンダーにログを記録するかを設定する
log4j.logger.org.apache.catalina.core.ContainerBase.[Catalina].[localhost] = INFO、LOCALHOST
log4j.logger.org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/manager] =\
 情報、マネージャー
log4j.logger.org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/host-manager] =\
 情報、ホストマネージャー

3) tomcat ルート ディレクトリの conf フォルダーで、logging.properties ファイルを削除するか、名前を変更します。次に、context.xml ファイルを変更し、<Context> タグを <Context eatingOutput="true"> に変更して、Tomcat のログ出力を引き継ぎます。このようにして、log4j を使用したログの分割が完了します。

2. cronologを使用してログを分割する

Cronolog は、標準入力からログ ファイル エントリを読み取り、ファイル名テンプレートと現在のログ ファイルで指定された出力ファイルに各エントリを書き込むフィルター プログラムです。 ファイル拡張子が変更されると、現在のファイルは閉じられ、新しいファイルが開かれます。 Cronolog は、Apache などの Web サーバーで使用して、アクセス ログを日次ログまたは月次ログに分割するように設計されています。

# wget https://files.cnblogs.com/files/crazyzero/cronolog-1.6.2.tar.gz
# tar -zxf cronolog-1.6.2.tar.gz
# cd クロノログ
# ./configure 
# 作成 && インストール
# どのクロノログ
# /usr/local/sbin/cronolog

tomcat の bin/catalina.sh を編集します (注: 行数は私のものではないかもしれません。ステートメントを見つけてください)

上記の 2 つの内容を次の内容に置き換えます。

org.apache.catalina.startup.Bootstrap "$@" を開始\
2>&1 |/usr/local/sbin/cronolog "$CATALINA_BASE/logs/catalina-%Y-%m-%d.out" &

完了したら、Tomcat を再起動します。

3. logrotate を使用してカットします。

/etc/logrotate.d で、新しい tomcatrotate を作成し、tomatrotate を編集して、次の内容を記述します。

/usr/local/tomcat7.0.79/logs/catalina.out {
毎日
15回転
行方不明
日付テキスト
圧縮する
空でない
コピー切り捨て
}

daily はダンプサイクルを毎日指定します。
rotate 15 は、ログ ファイルが削除される前にローテーションされる回数を指定します。0 はバックアップなしを意味し、5 は 5 つのバックアップが保持されることを意味します。
missingok ログが存在しない場合は警告メッセージを無視してください
dateext のファイルサフィックスは日付形式です。つまり、切り取った後のファイルは xxx.log-20150828.gz になります。
圧縮 ダンプされたログをgzipで圧縮します(解凍するにはgzip -d xxx.gz)
notifempty ファイルが空の場合はダンプしません。

copytruncate は、まだ開いているログ ファイルのバックアップと現在のログの切り捨てに使用されます。

/usr/local/tomcat7.0.79/logs/catalina.out は catalina.out のパスを指定します

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • TomcatはLog4jを使用してcatalina.outログを出力します。
  • Tomcatにcatalina.outが蓄積し続ける問題を解決する
  • Linux tomcat での Catalina.out ログ ファイルのセグメンテーション
  • Tomcat8はcronologを使用してCatalina.Outログを分割します

<<:  JS 正規マッチングの落とし穴の記録

>>:  2級コンピュータ試験のMySQL知識ポイント mysql alterコマンド

推薦する

Zabbix で監視項目と集約されたグラフを設定するためのサンプルコード

1. ローカルマシンを監視するためにZabbixエージェントをインストールするエージェントソフトウェ...

Ubuntu の空き容量を増やす 5 つの簡単な方法

序文ほとんどの人は、システム ディスク ストレージが少ないときにこの操作を実行するか、Linux シ...

モバイルインターネット時代: レスポンシブウェブデザインが一般的なトレンドに

今はモバイルインターネットが急速に発展している時代です。スマートフォンやタブレットはますます普及し、...

MySQLの分離レベルとロックメカニズムの詳細な説明

目次簡単な説明: 1. 取引の4つの特徴2. 複数の同時トランザクションによって発生する問題3. ト...

HTML の 2 つのタブ ナビゲーション間の競合の解決方法

まず問題の説明から始めましょう:同じページで、1 つのタブに float:left が必要で、もう ...

Nginx で limit_req_zone を使用して同じ IP へのアクセスを制限する方法

Nginx は、ngx_http_limit_req_module モジュールの limit_req...

JavaScript Canvas は動的なワイヤーフレーム効果を描画します

この記事では、JavaScript Canvasの動的なワイヤーフレーム効果を描画する具体的なコード...

Linuxでファイルの作成時間を表示する方法

1. はじめにLinux でファイルの作成時刻が見つかるかどうかは、ファイル システムの種類によって...

MySQL データベースは XA 仕様をどのように実装しますか?

MySQL 一貫性ログMySQL データベースの電源が切れた場合、コミットされていないトランザクシ...

MySQL パラメータ関連の概念とクエリ変更方法

序文:以前の記事では、特定のパラメータの機能についてよく紹介してきました。しかし、MySQL パラメ...

MySQLクラスタのDockerデプロイメントの実装

シングルノードデータベースの欠点大規模なインターネットプログラムはユーザーベースが大きいため、アーキ...

ウェブアニメーションのフレームレートFPSを計算する方法

目次スムーズなアニメーションの基準方法1: Chromeデベロッパーツールを使用する方法 2: フレ...

Vue 初心者ガイド: 環境の構築と開始方法

目次初期ビューVue開発環境の構築Vueインスタンスの作成Vue テンプレート構文Vue データバイ...

Linuxグループの基礎知識ポイントまとめ

1. Linuxグループの基本紹介Linux では、すべてのユーザーはグループに所属する必要があり、...

配列をフィルタリングするJavaScript

この記事では、配列フィルタリングを実装するためのJavaScriptの具体的なコードを参考までに紹介...