« 目次

Movable Type オブジェクト・リファレンス

MT::Log

概要

use MT::Log;
my $log = MT::Log->new;
$log->message('This is a message in the activity log.');
$log->save
    or die $log->errstr;

use MT::Log;
my $log = MT::Log->new;
$log->message("This is a debug message");
$log->level(MT::Log::DEBUG);
$log->save
	or die $log->errstr;

MT->log({
    message => "A new entry has been posted.",
    metadata => $entry->id,
    class => 'MT::Log::Entry'
});

解説

MT::Logオブジェクトは、Movable Typeのログ・レコード1件に対応します。

利用方法

MT::Logは、MT::Objectのサブクラスで、MT::Objectのデータ管理およびデータ保存用のメソッドをすべて継承していますので、新規オブジェクトの生成、既存オブジェクトの読み込み、オブジェクトの保存などの詳細については、MT::Objectのドキュメントを参照してください。

サブクラスの作成

ログ・レコードの種類ごとにMT::Logのサブクラスを作成することができます。MTのログ・フィードはこの機能を利用しています。

# MyCustomLog.pm

package MyCustomLog;

use base 'MT::Log';

sub description {
    # returns html presentation of log message; used in activity
    # log view and activity feeds...
}

1;

独自のサブクラスを定義した場合、プラグイン読み込み時にそのサブクラスを登録する必要があります。プラグインの「log_classes」変数に割り当てるキーと値のペアは、他のプラグインと重複しないように一意である必要があります。

# Plugin file

MT->add_plugin({
    name => "My custom plugin",
    log_classes => { customlog => "MyCustomLog" }
});

1;

メソッド

class_label

そのクラスが処理するログ・レコードの種類を識別する文字列を返します。

description

ログ・データの拡張表示を行います。この中にはHTMLタグが含まれることがあります。

metadata_object

「MT::Log」基本クラスのmetadata_objectメソッドは、次の条件が満たされる場合に、このログ・オブジェクトに該当するMTデータ・オブジェクトを返します。

  1. メタデータ・カラムに数値が格納されている
  2. クラス・カラムに、登録済みの「MT::Log」サブクラスにマッピングされた識別子が格納されている
  3. そのログ・レコードに対応するクラスのクラス名が「BASE::Log::OBJECTCLASS」のパターンである

これらの条件が満たされていると、このメソッドは、メタデータ・カラムに指定されたIDを持つ「BASE::OBJECTCLASS」というパッケージ名を用いてログ・レコードの読み込みを試みます。

データ・アクセス用メソッド

MT::Logオブジェクトは次のデータを格納します。これらのフィールドは、MT::Objectのドキュメントで説明したような標準的なデータ・アクセス用メソッドで参照あるいは設定できます。

id

ログ・レコードのIDです。

message

ログの内容です。

blog_id

ブログ・コンテクスト中で発生したログ・メッセージの場合、そのブログのIDがこのカラムに記録されます。

author_id

ユーザーの操作によってログ・メッセージが発生した場合、その投稿者のIDがこのカラムに記録されます。

class

このフィールドはオプションで、MT::Logの有効な派生クラスであるPerlパッケージ名(またはMT::Log自体)に対応する識別子を示します。

category

このフィールドはオプションで、ログに記録するメッセージをさらに細かく分類する際に使用するフィールドです。インデックス・カラムなので、ログ・レコードを抽出する際にはこのカラムの値で絞り込むことができます。

level

このフィールドはオプションで、ログ・メッセージのレベル(重要度)を定義する数値が入ります。このカラムに入る値は次のいずれかです(パッケージ定数とそれに対応する数値で示してあります)。

  • INFO / 1
  • WARNING / 2
  • ERROR / 4
  • SECURITY / 8
  • DEBUG / 16

デフォルト値は1(INFO)です。

metadata

ログ・メッセージ固有の追加情報を格納するためのフィールドです。このフィールドをどう使うかは、ログ・クラスによって異なります。

ip

メッセージに関連するIPアドレスです。これはたとえばログイン失敗時のメッセージの場合に、ログインを試みたユーザーのIPアドレスを特定するために使うことができます。

created_on

ログ・レコードの作成日時を示す、"YYYYMMDDHHMMSS"書式のタイムスタンプです。常にGMTでのタイムスタンプとなります。

modified_on

ログ・レコードの最終更新日時を示す、"YYYYMMDDHHMMSS"書式のタイムスタンプです。タイムゾーンの設定に合わせたタイムスタンプになることに注意してください。

データの検索

ログ・レコードの検索では、IDによる検索の他、次のフィールドの任意の組み合わせによる検索やソートを行うことができます。詳細はMT::Objectのドキュメントのloadメソッドの説明を参照してください。

  • created_on
  • blog_id
  • level
  • class

Copyright © 2001-2006 Six Apart, Ltd. All Rights Reserved.