すべてのログファイルを1つにマージする

すべてのログファイルを1つにマージする

開発者の皆さんならご存知のとおり、ログを処理する必要がある場合があります。

PhP エラー ログ、laravel デバッグ、mysql、apache、cron 出力などがあります。

質問ですが、すべてのログ ファイルを 1 つにマージすることは可能ですか? また、毎日ログを削除して再度マージするように設定できますか? ファイルには最新のデータのみが含まれるようになりますか?

つまり、次のようになります。

//PHPエラー

何でも...

//アパッチ

何でも...

// クローン

何でも...

答え1

まさにそのためにrsyslogデーモン書かれています。Ubuntu にプリインストールされていますが、必要な操作を行うにはカスタマイズが必要です。ログ ファイルを読み取ってマージしたり、ネットワーク経由で他のシステムからログ メッセージを収集したり、任意の場所にルーティングしたりできます。非常に強力です。ただし、Jacob が言うように、使い始めるのは驚くほど簡単です。

ウェブサイトの設定例に従って、楽しんでください。

答え2

すべてのログファイルを 1 つに結合することは可能ですか?

ログをマージしたい場合日時スタンプによる、試してみて超高速Syslogサーチャー

(あなたが持っていると仮定して錆びが取り付けられている

cargo install super_speedy_syslog_searcher

それから

s4 /var/log/php/ /var/log/apache2/ /var/log/cron > /var/log/merged.log

また、毎日ログを削除して再度マージするように設定できますか?

このシンプルなシェルスクリプトはそれを実行します

#!/usr/bin/env sh

s4 /var/log/php/ /var/log/apache2/ /var/log/cron > /var/log/merged.log

スクリプトを にコピーします/etc/cron.daily/merge-logs.sh。スクリプトを実行可能に設定することを忘れないでくださいchmod +x /etc/cron.daily/merge-logs.sh

関連情報