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

推薦する

デザインにおいて無視できないインタラクティブデザインにおける製品状態の分析

製品デザインのプロセスにおいて、デザイナーは常に写真を非常に美しくすることを好みます。仮想ページのコ...

jQueryはフォーム検証機能を実装します

jQuery フォーム検証の例 / ユーザー名、パスワード、住所、電子メールの検証を含む下記の通り ...

Vueコンポーネントは、写真やビデオをアップロードするためのサンプルコードをカプセル化します

まず依存関係をダウンロードします: cnpm i -S vue-uuid ali-oss画像フィール...

UTF-8 ファイルの Unicode 署名 BOM (バイト オーダー マーク) の問題

最近、UTF8 エンコードの中国語 Zen Cart Web サイトをデバッグしているときに奇妙な現...

Element UI を使用してページにページング ナビゲーション バーを追加する方法

必要ページング バーを追加します。これにより、ページにジャンプしたり、ページ番号に従って特定のページ...

Docker Compose のサイドカーモードの詳細な説明

目次Docker Composeとは要件に不適切な言語が使用されている実装Docker Compos...

Dockerfile をベースに Zabbix 監視システムのコード例を作成する

forループを使用してZabbixイメージをコンテナにインポートします。 n を `ls *.tar...

MySQLはデータベースのN+1クエリ問題を解決します

導入HibernateやMyBatisなどのORMフレームワークでは、部門に関連付けられたユーザーオ...

CocosCreator 一般的なフレームワーク設計リソース管理

目次Cocos Creator のリソース管理に関する問題リソースの依存関係リソースの使用レスローダ...

BT Baota Panel php7.3 および php7.4 が ZipArchive をサポートしない問題の解決方法

Baota PanelのPHP7.3バージョンがZipArchiveをサポートしていないため、プログ...

ボタンをクリックして画像を切り替える JavaScript

この記事の例では、ボタンをクリックすることで画像を切り替えることを実現するJavaScriptの具体...

Vueは製品の拡大鏡効果を実現します

この記事の例では、製品の拡大鏡効果を実現するためのVueの具体的なコードを共有しています。具体的な内...

MySQLインジェクションバイパスフィルタリング技術の概要

まず、GIF 操作を見てみましょう。ケース1: スペースがフィルタリングされるスペースの代わりに角括...

Ubuntu 18.04.4 に MySQL をインストールするプロセスの詳細な説明

Ubuntu 18.04.4 に MySQL をインストールするプロセスを見てみましょう。内容は次の...

MySQL 8.0.12 winx64 詳細なインストールチュートリアル

この記事では、MySQL 8.0.12のインストールチュートリアルを参考までに紹介します。具体的な内...