ダン・バーンスタインのマルチログは、これを行うことができます-またはおそらくそのほとんどは、ファイル記述子を介して!プロセッサーにアウトレットを提供して、あなたが好きなように違いを補います-20M / 1Gサイズの仕様は、16Mログごとの制限外。以下は、大部分で、コピー+は、上記のリンクから選択して貼り付け、あるリンクはまた、行ごとにタイムスタンプなどの他のオプションについて詳しく説明しても、[]他のファイル[S]が唯一の最も最近のラインマッチング含む保守パターンを、より。
インターフェース
multilog script
... スクリプトは、任意の数の引数で構成されます。各引数は1つのアクションを指定します。アクションは、入力の各行に対して順番に実行されます。
行を選択する
各行が最初に選択されます。アクション...
-pattern
...パターンが行に一致する場合、行の選択を解除します。アクション...
+pattern
パターンが行に一致する場合、行を選択します。
... パターンは、星と星以外の文字列です。これは、同じ順序ですべての星と非星に一致する文字列の連結に一致します。非星はそれ自身と一致します。パターンの終わりの前の星は、パターン内の次の文字を含まない文字列と一致します。パターンの最後にある星は、任意の文字列に一致します。
自動ローテーションログ
dirがドットまたはスラッシュで始まる場合、アクション...
dir
...選択した各行をdirという名前のログに追加します。場合dirが存在しない、multilog
それが作成されます。
ログ形式は次のとおりです。
dirは、いくつかの古いログファイル、currentという名前のログファイル、およびmultilog
そのアクションを追跡するためのその他のファイルを含むディレクトリです。
各古いログファイルの名前は@で始まり、ファイルの終了時刻を示す正確なタイムスタンプが続き、次のコードのいずれかで終わります。
- .s:このファイルは完全に処理され、ディスクに安全に書き込まれます。
- .u:このファイルは、停止時に作成されていました。切り捨てられた可能性があります。処理されていません。
アクション...
ssize
...後続のdirアクションの最大ファイルサイズを設定します。multilog
ことを決定する電流があれば十分に大きいです、現在は持っているサイズをバイト。(multilog
最大ファイルサイズの2000バイト以内に改行がある場合、currentは十分に大きいと判断します。ログファイルを行境界で終了させようとします。)サイズは4096〜16777215の間である必要があります。デフォルトの最大ファイルサイズは99999です。
バージョン0.75以降:ALRM信号multilog
を受信すると、電流が十分に大きいとすぐに判断します。、現在は空です。
(注:私は疑います zsh
schedule
ALRM
必要に応じて、指定された間隔で送信するようビルトインを簡単に説得できるとます。)
アクション...
nnum
...後続のdirアクションのログファイルの数を設定します。名前を変更した後、現在の場合は、multilog
見ているNUM以上の古いログファイルを、それが最小のタイムスタンプを持つ古いログファイルを削除します。numは少なくとも2でなければなりません。ログファイルのデフォルト数は10です。
アクション...
!processor
...後続のdirアクションのプロセッサを設定します。プロセッサを介して電流をmultilog
供給し、出力をcurrentの代わりに古いログファイルとして保存します。また、プロセッサが記述子5に書き込む出力を保存し、次のログファイルでプロセッサを実行するときに記述子4でその出力を読み取り可能にします。信頼性を確保するために、出力の作成に問題がある場合、プロセッサはゼロ以外で終了する必要があります。その後、再度実行します。実行中のプロセッサは、プログラムへの入力をブロックする可能性があることに注意してください。multilog
multilog
multilog