ngx_stream_log_module モジュール

設定例
ディレクティブ
ディレクティブ     log_format
     open_log_file_cache

ngx_stream_log_module モジュール (1.11.4) は指定された書式でセッションログを書きます。

設定例

log_format basic '$remote_addr [$time_local] '
                 '$protocol $status $bytes_sent $bytes_received '
                 '$session_time';

access_log /spool/logs/nginx-access.log basic buffer=32k;

ディレクティブ

構文: access_log path format [buffer=size] [gzip[=level]] [flush=time] [if=condition];
access_log off;
デフォルト:
access_log off;
コンテキスト: stream, server

バッファされたログのパス、書式と構成を設定します。幾つかのログは同じレベルに指定されるかも知れません。syslogへの記録は最初のパラメータに"syslog:"プリフィックスを指定することで設定することができます。特別な値off は現在のレベルの全てのaccess_log ディレクティブを無効にします。

もしbuffer または gzip パラメータのどちらかが使われると、記録への書き込みはバッファされます。

バッファのサイズはディスクファイルへの最小の書き込み単位のサイズを超えてはいけません。FreeBSDではこのサイズは制限されていません。

バッファリングが有効な場合、以下のデータはファイルに書き込まれるでしょう:

もしgzip パラメータが使われると、バッファされたデータはファイルに書き込む前に圧縮されるでしょう。圧縮レベルは1 (高速、低圧縮)から9(低速、高圧縮)の間で設定することができます。デフォルトでは、バッファサイズは64Kバイトで、圧縮レベルは1に設定されます。データは最小限のブロックで圧縮されるため、ログファイルはいつでも解凍または"zcat"で読むことができます。

例:

access_log /path/to/log.gz basic gzip flush=5m;

gzip圧縮を動作させるには、nginxがzlibライブラリとビルドされていなければなりません。

ファイルパスには変数を含むことができますが、そのようなログには幾つかの制限があります:

if パラメータは条件付きのログを有効にします。condition が"0" または空文字の時に、セッションはログに記録されないでしょう。

構文: log_format name [escape=default|json|none] string ...;
デフォルト: -
コンテキスト: stream

ログの書式を指定する。例えば:

log_format proxy '$remote_addr [$time_local] '
                 '$protocol $status $bytes_sent $bytes_received '
                 '$session_time "$upstream_addr" '
                 '"$upstream_bytes_sent" "$upstream_bytes_received" "$upstream_connect_time"';

escape パラメータ (1.11.8) は変数内の json あるいは default 文字エスケープをすることができます。デフォルトではdefault エスケープが使われます。none パラメータ (1.13.10) はエスケープを無効にします。

デフォルトのエスケープでは、文字“"”、“\”、値が32未満または126より大きなその他の文字は“\xXX”としてエスケープされます。変数の値が定義されていない場合は、ハイフン(“-”)はログに記録されます。

jsonのエスケープの場合、JSON 文字列に許可されない全ての文字はエスケープされます: 文字“"”と“\”は“\"”と“\\”としてエスケープされ、値が32未満の文字は“\n”、“\r”、“\t”、“\b”、“\f”、“\u00XX”としてエスケープされます。

構文: open_log_file_cache max=N [inactive=time] [min_uses=N] [valid=time];
open_log_file_cache off;
デフォルト:
open_log_file_cache off;
コンテキスト: stream, server

名前に変数を含む頻繁に使われるログファイルのファイルディスクリプタを保持するキャッシュを定義します。ディレクティブは次のパラメータを持ちます:

max
キャッシュ内のディスクリプタの最大数を設定します; もしキャッシュが一杯になると、最も使われていない(LRU)ディスクリプタが閉じられます。 closed
inactive
指定の期間アクセスされていないキャッシュのディスクリプタが閉じられる時間を定義します; デフォルトは 10秒です。
min_uses
inactive パラメータで定義された期間キャッシュの中でディスクリプタが開かれたままになるファイルの最小数を設定します; デフォルトは1です
valid
ファイルがまだ同じ名前で存在しているかをチェックすべき時間を設定します; デフォルトは 60秒です。
off
キャッシュを無効にします

利用例:

open_log_file_cache max=1000 inactive=20s valid=1m min_uses=2;

TOP
inserted by FC2 system