- ホーム >
- MTエンジニアブログ >
- Movable Type技術情報 >
- カスタムログについて
カスタムログについて
こんにちは,上西です。今日のネタはかなり地味(?)かも知れません。Movable Type でのログ出力について。
プラグインやシステムを開発していると,プログラムの動作を MovableType のシステム ログに書き出すことがあると思います。普段は余程複雑なログ出力が要求されない限り,MT->log を使うだけで十分です。
ところで MovalbeType には Custom Log という仕組みがあって,ベンダ定義の Log Object を自由に追加することができるようになっています。これを使うとベンダが自由に定義した書式でログに書き出したり,そのログだけをフィルタすることもできるようになります。地味な機能の割りには実はかなり便利です。
カスタム ログについては,一応,MT::Log オブジェクトのリファレンスにその記述があります。ただ,詳細なところがかなり端折って書いてあるので,とりあえず自分でカスタム ログ オブジェクトを作って動かしてみるとよく判るのではないでしょうか。
カスタム ログ オブジェクトはプラグインの形で提供すると簡単です。プラグインを書く要領で以下のようなファイルを作り,例によって plugins ディレクトリ以下にコピーしてやります。
カスタム ログ オブジェクトは /plugins/MyCustomLog/lib/MyCustomLog.pm に定義されていて,以下のように MT::Log のサブクラスとして定義してやります。今回,実験用に以下の非常に簡単なものを用意しました。
以上で準備は完了です。管理画面からログを確認すると以下のようになっているのが確認できると思います。MyCustomLog オブジェクトでオーバーライドした各メソッドと画面上での表示の対応は以下の通りになります。
フィルタの設定から "My Custom Log Label" を選択すると,MyCustomLog によって記録されたログだけが抽出されて表示されます。
ところで,ここが追試不足でイマイチ不明なのですが,MT::Log->add_class するときの key と value は同じ文字列にしておかないとフィルタが上手く動作しないようなんですね。うーん。
MT と他システムと連携して機能するサイトなどでも,その動作ログを MT に集約すると管理がし易くて便利です。フィードも生成されますし再利用性が大きく増します。ただ,普通に system レベルのログに吐いてしまうと,他のログに混ざって検索が大変だったりします。そんな時に活躍してくれるカスタム ログは縁の下の力持ち的な存在と言えるでしょう。
新着記事
- [2009-12-17]検索エラー:Can't call method "server_offset" on unblessed reference
- [2009-11-21]プラグイン応用 Lesson 1 - AutoTaggingで自動関連付け
- [2009-11-19]MT5でメール送信内容が文字化けしてしまう場合
- [2009-11-02]MovableTypeのconfig.yamlでコールバック優先度を設定する方法
- [2009-10-28]MT5でウェブサイト配下のブログにウェブサイトのIDなどを簡単に引き継ぐ方法



















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