カスタムログについて

ぴろり上西 2008年02月25日

このようなコンテンツはいかがですか?

このページ以外にも下記がオススメです

 こんにちは,上西です。今日のネタはかなり地味(?)かも知れません。Movable Type でのログ出力について。

 プラグインやシステムを開発していると,プログラムの動作を MovableType のシステム ログに書き出すことがあると思います。普段は余程複雑なログ出力が要求されない限り,MT->log を使うだけで十分です。
 ところで MovalbeType には Custom Log という仕組みがあって,ベンダ定義の Log Object を自由に追加することができるようになっています。これを使うとベンダが自由に定義した書式でログに書き出したり,そのログだけをフィルタすることもできるようになります。地味な機能の割りには実はかなり便利です。

 カスタム ログについては,一応,MT::Log オブジェクトのリファレンスにその記述があります。ただ,詳細なところがかなり端折って書いてあるので,とりあえず自分でカスタム ログ オブジェクトを作って動かしてみるとよく判るのではないでしょうか。
 カスタム ログ オブジェクトはプラグインの形で提供すると簡単です。プラグインを書く要領で以下のようなファイルを作り,例によって plugins ディレクトリ以下にコピーしてやります。

 カスタム ログ オブジェクトは /plugins/MyCustomLog/lib/MyCustomLog.pm に定義されていて,以下のように MT::Log のサブクラスとして定義してやります。今回,実験用に以下の非常に簡単なものを用意しました。

 以上で準備は完了です。管理画面からログを確認すると以下のようになっているのが確認できると思います。MyCustomLog オブジェクトでオーバーライドした各メソッドと画面上での表示の対応は以下の通りになります。

MyCustomLog.gif

 フィルタの設定から "My Custom Log Label" を選択すると,MyCustomLog によって記録されたログだけが抽出されて表示されます。
 ところで,ここが追試不足でイマイチ不明なのですが,MT::Log->add_class するときの key と value は同じ文字列にしておかないとフィルタが上手く動作しないようなんですね。うーん。

 MT と他システムと連携して機能するサイトなどでも,その動作ログを MT に集約すると管理がし易くて便利です。フィードも生成されますし再利用性が大きく増します。ただ,普通に system レベルのログに吐いてしまうと,他のログに混ざって検索が大変だったりします。そんな時に活躍してくれるカスタム ログは縁の下の力持ち的な存在と言えるでしょう。

投稿者 ぴろり上西 : 02/25 | コメント (0) | トラックバック (0) Yahoo!ブックマークに登録 このエントリーを含むはてなブックマーク このエントリーをはてなブックマークに追加 はてなブックマーク数

トラックバック

コメントする

この記事にご意見やメッセージがございましたらコメントをお願いいたします。

  • ※ コメントは承認後に公開されます。内容によってはご返信致しかねる場合がございます。

MTエンジニアブログ

配布プラグイン一覧

ParentalInclude
MT5でウェブサイトとブログのテンプレート連携を便利にするプラグイン
DuplicateEntry
ブログ記事を複製または移動するMovableTypeプラグイン
NotifyAnythingChanged
何かが起きたらメールで通知するMovableTypeプラグイン
rssEntry
取込んだRSSをエントリとして書き出すMovableTypeプラグイン
AutoTagging
面倒な記事のタグ付けを自動化する
FutureRebuild
日時を指定してページを再構築する
EntryImExporter
エントリをCSVに書出したり、CSVから一括登録するMovableTypeプラグイン
MailPack
Movable Typeで簡単携帯投稿!メール投稿プラグイン
DirectoryUtility
カテゴリ・フォルダの階層を表示したり、親フォルダを表示したり、何かと便利なプラグイン
CSVList
CSVデータを整形して表示する
PageBute
静的ページ用ページ分割プラグイン

注目記事

RSS

ページの先頭へ戻る