by Hippo2000(2001/1/7)
Net::Daemon::Logなのです。
作者はJochen Wiedmannさんです。それにしても、この方は色々なものを作っています。
なお内容等が間違っていたら修正します。ご連絡ください。
Net::Daemon::Log - ログ出力のためのユーティリティ関数
# ログ出力方法を選択する: syslog または Win32::EventLog
$self->{'facility'} = 'mail'; # デフォルト: Daemon
$self->{'logfile'} = undef; # デフォルト
# ログ出力方法の選択: stderr
$self->{'logfile'} = 1;
# ログ出力方法の選択: IO handle
my $file = IO::File->new("my.log", "a");
$self->{'logfile'} = $file;
# デバッグメッセージ(両方とも同じこと):
$self->Log('debug', "This is a debugging message");
$self->Debug("This is a debugging message");
# エラー・メッセージ(両方とも同じこと):
$self->Log('err', "This is an error message");
$self->Error("This is an error message");
# 致命的なエラーメッセージ ('die'を仮定している)
$self->Fatal("This is a fatal error message");
これはALPHA状態のソフトウェアです。 これはインターフェース(API)が最終確定されていないためだけに'Alpha'になっています。Alpha状態はコードの品質や安定性には当てはまりません。
Net::Daemon::Log は移植性のあるメッセージ・ログ出力のためのユーティリティ・クラスです。デフォルトではsyslog(Unix)またはWin32::EventLog(Windows)を使いますが、メッセージ・ログ出力をstderrやログファイルにリダイレクトすることもできます。
$self->Log($level, $msg, @args);
これが一般的なインターフェースです。ログ出力のレベルはsyslogスタイルで、 'debug', 'info', 'notice', 'err' または 'crit' という言葉の1つです。infoとnoticeが必要になることはまずないでしょう。そしてcrit(critical)という理由も思い当たりません。全体の95%の場合は、deugとerrで十分でしょう。
ログ出力する文字列$msgはprintfと同じフォーマット文字列です。
$self->Debug($msg, @args);
$self->Error($msg, @args);
$self->Fatal($msg, @args);
これらはdebugとerrのレベルを持ったログ出力の置換えです。後ろの2つの違いはFatalはPerl例外を投げることも含んでいるといことです。
デフォルトではログ出力はsyslog (Unix) または EventLog (Windows)に行われます。しかし以下のように設定するとstderrへのログ出力を選択することができます:
$self->{'logfile'} = 1;
もしsyslogもEventLogも使えないときに必要です。代わりの選択としては以下のように設定することがあります:
$self->{'logfile'} = $handle;
$handleはIO::Handleのようにprintメソッドをサポートしているオブジェクトです。通常、ログ出力の出力先は最初に$self->Log()を呼ぶとすぐに選択されます。しかし最初にLogを呼び出す前に、
$self->OpenLog();
することで出力先の選択を強制することができます。
このクラスのマルチスレッドの能力は元にしているSys::Syslog, Win32::EventLog またはIO::Handle に大きく依存しています。それらがスレッド・セーフであれば、このパッケージも同じだと考えることができます。(例外はスレッドが開始する前に$self->OpenLog()を呼んでおいた方がよいということです)
(原文のまま)
Net::Daemon is Copyright (C) 1998, Jochen Wiedmann
Am Eisteich 9
72555 Metzingen
Germany
Phone: +49 7123 14887
Email: joe@ispsoft.de
All rights reserved.
You may distribute this package under the terms of either the GNU General Public License or the Artistic License, as specified in the Perl README file.
Net::Daemon(3), Sys::Syslog(3), Win32::EventLog(3), IO::Handle(3)
ご意見、ご質問はこちらの掲示板で受け付けています。
またメールは河馬屋(Nifty)にお願いします。