Log系のモジュールでは、以下のように日付や時刻の置換が行なわれる。
%% : %
%Y : 年(4桁)
%m : 月(2桁)
%d : 日(2桁)
%H : 時間(2桁)
%M : 分(2桁)
%S : 秒(2桁)
ログを保存するディレクトリ。Tiarraが起動した位置からの相対パス。~指定は使えない。
ログファイルの文字コード。省略されたらjis。
各行のヘッダのフォーマット。省略されたら'%H:%M'。
ファイル名のフォーマット。省略されたら'%Y.%m.%d.txt'
ログファイルのモード(8進数)。省略されたら600
ログディレクトリのモード(8進数)。省略されたら700
ログを取るコマンドを表すマスク。省略されたら記録出来るだけのコマンドを記録する。
PRIVMSGとNOTICEを記録する際に、自分の発言と他人の発言でフォーマットを変えるかどうか。1/0。デフォルトで1。
各ログファイルを開きっぱなしにするかどうか。
このオプションは多くの場合、ディスクアクセスを抑えて効率良くログを保存しますが
ログを記録すべき全てのファイルを開いたままにするので、50や100のチャンネルを
別々のファイルにログを取るような場合には使うべきではありません。
万一 fd があふれた場合、クライアントから(またはサーバへ)接続できない・
新たなモジュールをロードできない・ログが全然できないなどの症状が起こる可能性が
あります。limit の詳細については OS 等のドキュメントを参照してください。
keep-file-open 時に各行ごとに flush するかどうか。
open/close の負荷は気になるが、ログは失いたくない人向け。
keep-file-open が有効でないなら無視され(1になり)ます。
keep-file-openを有効にした場合、発言の度にログファイルに追記するのではなく
一定の分量が溜まってから書き込まれる。そのため、ファイルを開いても
最近の発言はまだ書き込まれていない可能性がある。
syncを設定すると、即座にログをディスクに書き込むためのコマンドが追加される。
省略された場合はコマンドを追加しない。
各チャンネルの設定。チャンネル名の部分はマスクである。
個人宛てに送られたPRIVMSGやNOTICEはチャンネル名"priv"として検索される。
記述された順序で検索されるので、全てのチャンネルにマッチする"*"などは最後に書かなければならない。
指定されたディレクトリが存在しなかったら、Log::Channelはそれを勝手に作る。
フォーマットは次の通り。
channel: <ディレクトリ名> (<チャンネル名> / 'priv')
例:
filename: %Y.%m.%d.txt
channel: IRCDanwasitu #IRC談話室@ircnet
channel: others *
この例では、#IRC談話室@ircnetのログはIRCDanwasitu/%Y.%m.%d.txtに、
それ以外(privも含む)のログはothers/%Y.%m.%d.txtに保存される。
#(channel) はチャンネル名に展開される。
(古いバージョンだと展開されずにそのままディレクトリ名になってしまいます。)
IRCのチャンネル名は大文字小文字が区別されず、サーバからは各送信者が指定した通りの
チャンネル名が送られてきます。そのため、大文字小文字が区別されるファイルシステムでは
同じチャンネルが別々のディレクトリに作られることになります。
この問題を回避するため、チャンネル名を小文字に統一した #(lc_channel) が利用できます。
ファイル名のエンコーディング.
指定可能な値は, utf8, sjis, euc, jis, ascii.
ascii は実際には utf8 と同等で8bit部分が全てquoted-printableされる.
デフォルトはWindowsではsjis, それ以外では utf8.