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コマンド

推薦する

MySQLクエリ速度を最適化する方法

前の章では、高性能な MySQL に不可欠な、最適化されたデータ型の選択方法とインデックスの効率的な...

jQueryは広告の表示と非表示のアニメーションを実装します

数秒後に広告が表示されて消えることがよくあります。この機能を実装するには、JQuery フレームワー...

ubuntu20.04 上の CLion2020.1.3 での ROS のインストールと設定の詳細な説明

1. CLionをダウンロード、インストール、アクティベートするオンラインで提供されるチュートリアル...

node.js で PC 上の WeChat アプレット パッケージを復号化するための処理アイデア

目次アプレットのソースコードはどこにありますか? PC ミニプログラムはどのように暗号化されますか?...

Linuxカーネルがプロセスアドレス空間に侵入し、プロセスメモリを変更する方法

プロセス アドレス空間の分離は、現代のオペレーティング システムの注目すべき機能です。これは、「古い...

SQL でテーブルにフィールドとコメントを追加する方法

1. フィールドを追加します。 alter table テーブル名 ADD フィールド名 タイプ;例...

elementui の el-popover スタイルの変更が有効にならない問題の解決策

element-uiを使用する場合、el-popoverというよく使われるコンポーネントがありますが...

JS における ES6 継承と ES5 継承の違い

目次継承ES5 プロトタイプ継承ES6 クラス継承両者の違いES5プロトタイプ継承の内部実装ES6 ...

ユーザー エクスペリエンス デザイナーとは誰ですか?

怖いですね! 写真の翻訳: (内側から外側へ)最初のレイヤー:ユーザーエクスペリエンス第2層:コンテ...

JavaScriptはキュー構造プロセスを実現する

目次1. キューを理解する2. カプセル化キュー3. 太鼓をたたいて花を渡す場合1. キューを理解す...

Hadoopカウンターとデータクリーニングの適用

データクリーニング (ETL)コアビジネスの MapReduce プログラムを実行する前に、まずデー...

Node.js における path.join() の利点の分析

文字列連結ではなく path.join() メソッドを使用する必要があるのはなぜか疑問に思うかもしれ...

CSSを使用して特別なロゴやグラフィックを実装する

1. はじめに画像は多くのスペースを占め、画像の数が増えるほど管理が難しくなるため、シンプルなラベル...

CSSを使用して炎の効果を作成する方法

本文は以下から始まります。 123WORDPRESS.COM ダウンロード:純粋な CSS3 で超リ...

Python 仮想環境のインストールとアンインストールの方法と発生する問題

Ubuntu16.04 のインストールとアンインストール pip実験環境Ubuntu 16.04; ...