Log 関係のモジュール - Tiarra Documentation

# Log 関係のモジュール

## Log::Channel

チャンネルやprivのログを取るモジュール。

Log系のモジュールでは、以下のように日付や時刻の置換が行なわれる。
%% : %
%Y : 年(4桁)
%m : 月(2桁)
%d : 日(2桁)
%H : 時間(2桁)
%M : 分(2桁)
%S : 秒(2桁)

ログを保存するディレクトリ。Tiarraが起動した位置からの相対パス。~指定は使えない。

directory:log

ログファイルの文字コード。省略されたらjis。

charset:utf8

各行のヘッダのフォーマット。省略されたら'%H:%M'。

header:%H:%M:%S

ファイル名のフォーマット。省略されたら'%Y.%m.%d.txt'

filename:%Y.%m.%d.txt

ログファイルのモード(8進数)。省略されたら600

mode:600

ログディレクトリのモード(8進数)。省略されたら700

dir-mode:700

ログを取るコマンドを表すマスク。省略されたら記録出来るだけのコマンドを記録する。

command:privmsg,join,part,kick,invite,mode,nick,quit,kill,topic,notice

PRIVMSGとNOTICEを記録する際に、自分の発言と他人の発言でフォーマットを変えるかどうか。1/0。デフォルトで1。

distinguish-myself:1

各ログファイルを開きっぱなしにするかどうか。
このオプションは多くの場合、ディスクアクセスを抑えて効率良くログを保存しますが
ログを記録すべき全てのファイルを開いたままにするので、50や100のチャンネルを
別々のファイルにログを取るような場合には使うべきではありません。
万一 fd があふれた場合、クライアントから(またはサーバへ)接続できない・
新たなモジュールをロードできない・ログが全然できないなどの症状が起こる可能性が
あります。limit の詳細については OS 等のドキュメントを参照してください。

keep-file-open:1

keep-file-open 時に各行ごとに flush するかどうか。
open/close の負荷は気になるが、ログは失いたくない人向け。
keep-file-open が有効でないなら無視され(1になり)ます。

always-flush:0

keep-file-openを有効にした場合、発言の度にログファイルに追記するのではなく
一定の分量が溜まってから書き込まれる。そのため、ファイルを開いても
最近の発言はまだ書き込まれていない可能性がある。
syncを設定すると、即座にログをディスクに書き込むためのコマンドが追加される。
省略された場合はコマンドを追加しない。

sync: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) が利用できます。

channel:priv priv
channel:#(lc_channel) *
channel:others *

ファイル名のエンコーディング.
指定可能な値は, utf8, sjis, euc, jis, ascii.
ascii は実際には utf8 と同等で8bit部分が全てquoted-printableされる.
デフォルトはWindowsではsjis, それ以外では utf8.

filename-encoding:utf8

## Log::ChannelList

チャンネルリストをテンプレートに沿って HTML 化します。

list コマンドが実行された際に動作します。

出力したいファイル名、ネットワーク名、使う設定のブロックを指定します。。

networks:ircnet.html ircnet ircnet
ircnet

テンプレートファイルを指定します。

template:channellist.html.tmpl

出力とテンプレートファイルの文字コードを指定します。

charset:euc

取得を開始/終了した時刻のフォーマットを指定します。

fetch-starttime:%Y年%m月%d日 %H時%M分(日本時間)
fetch-endtime:%Y年%m月%d日 %H時%M分(日本時間)

表示するチャンネルの mask を指定します。

mask:*
mask:-re:^\&(AUTH|SERVICES|LOCAL|HASH|SERVERS|NUMERICS|CHANNEL|KILLS|NOTICES|ERRORS)

出力するファイルのモードを指定します。

mode:644

## Log::Raw

サーバとの生の通信を保存する

Log系のモジュールでは、以下のように日付や時刻の置換が行なわれる。
%% : %
%Y : 年(4桁)
%m : 月(2桁)
%d : 日(2桁)
%H : 時間(2桁)
%M : 分(2桁)
%S : 秒(2桁)

ログを保存するディレクトリ。Tiarraが起動した位置からの相対パス。~指定は使えない。

directory:rawlog

各行のヘッダのフォーマット。省略されたら'%H:%M'。

header:%H:%M:%S

ファイル名のフォーマット。省略されたら'%Y.%m.%d.txt'

filename:%Y-%m-%d.txt

ログファイルのモード(8進数)。省略されたら600

mode:600

ログディレクトリのモード(8進数)。省略されたら700

dir-mode:700

使っている文字コードがよくわからなかったときの文字コード。省略されたらutf8。
たぶんこの指定が生きることはないと思いますが……。

charset:jis

NumericReply の名前を解決して表示する(ちゃんとした dump では無くなります)

resolve-numeric:1

ログを取るコマンドを表すマスク。省略されたら記録出来るだけのコマンドを記録する。

command:*,-ping,-pong

各ログファイルを開きっぱなしにするかどうか。
このオプションは多くの場合、ディスクアクセスを抑えて効率良くログを保存しますが
ログを記録すべき全てのファイルを開いたままにするので、50や100のチャンネルを
別々のファイルにログを取るような場合には使うべきではありません。
万一 fd があふれた場合、クライアントから(またはサーバへ)接続できない・
新たなモジュールをロードできない・ログが全然できないなどの症状が起こる可能性が
あります。limit の詳細については OS 等のドキュメントを参照してください。

keep-file-open:1

keep-file-open 時に各行ごとに flush するかどうか。
open/close の負荷は気になるが、ログは失いたくない人向け。
keep-file-open が有効でないなら無視され(1になり)ます。

always-flush:0

keep-file-openを有効にした場合、発言の度にログファイルに追記するのではなく
一定の分量が溜まってから書き込まれる。そのため、ファイルを開いても
最近の発言はまだ書き込まれていない可能性がある。
syncを設定すると、即座にログをディスクに書き込むためのコマンドが追加される。
省略された場合はコマンドを追加しない。

sync:sync

各サーバの設定。サーバ名の部分はマスクである。
記述された順序で検索されるので、全てのサーバにマッチする"*"などは最後に書かなければならない。
指定されたディレクトリが存在しなかったら、勝手に作られる。
フォーマットは次の通り。
channel: <ディレクトリ名> <サーバ名マスク>
例:
filename: %Y-%m-%d.txt
server: ircnet ircnet
server: others *
この例では、ircnetのログはircnet/%Y.%m.%d.txtに、
それ以外のログはothers/%Y.%m.%d.txtに保存される。

server:ircnet ircnet
server:others *

## Log::Recent

クライアントを接続した時に、保存しておいた最近のメッセージを送る。

クライアントオプションの no-recent-logs が指定されていれば送信しません。

各行のヘッダのフォーマット。省略されたら'%H:%M'。

header:%H:%M:%S

ログをチャンネル毎に何行まで保存するか。省略されたら10。

line:15

PRIVMSGとNOTICEを記録する際に、自分の発言と他人の発言でフォーマットを変えるかどうか。1/0。デフォルトで1。

distinguish-myself:1

どのメッセージを保存するか。省略されたら保存可能な全てのメッセージを保存する。

command:privmsg,notice,topic,join,part,quit,kill