Net::Daemon::Log v0.32 日本語チョー訳

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()を呼んでおいた方がよいということです)


作者と著作権(AUTHOR AND COPYRIGHT)

(原文のまま)

  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)


ホーム Perlの小技 Net::Daemon

ご意見、ご質問はこちらの掲示板で受け付けています。
またメールは河馬屋(Nifty)にお願いします。