kenanのブログ

闘病生活

tiarraのログをmysqlに入れるLog::DBIをいれた。

最近鯖いじりがが楽しくなってきたのでLog::DBIを入れてみた。

tiarra のログを mysql に突っ込む Log::DBI を作った - woremacxの日記

使い方がまったくわからなかったので手探りで入れました。
正しい使い方じゃないかもしれないけど、まあ使えるレベルで動いていたのでその認識で。

上のURLからソースをコピペしてtiarra/module/Log配下にDBI.pmを作成。

このままではうまく動かなかったのでソースを修正。

68     #for (qw/source user pass/) {
69     #    $param->{$_} = $self->config->get($_);
70     #}
71     $param->{source} = $self->config->source;
72     $param->{user} = $self->config->user;
73     $param->{pass} = $self->config->pass;

具体的には69行目?ぐらいの

$self->config->DBI->get($_);
↓
$self->config->get($_);

というように変えれば動く。
DBI->get($_)の部分がうまく動いてなくてtiarra.confから設定情報取れてなかったっぽいんだけど、DBIとか書かなくても取得できたのでOK。
あと、$_とかいうPerlの特殊変数はあとあと見たときなんでこうなってるかわからなくなるので、取得するパラメーター名前をべた書き。というか他のモジュールがそう書いてたのでそうした。

次はtiarra.confへ

+ Log::DBI{
    source: DBI:mysql:Database_name:127.0.0.1:3306
    user: user_name
    pass: password
    sync: sync
}

syncはいらないかも。

sourceの記述はPerlDBIの使い方を参考にした。
http://www.rfs.jp/sb/perl/dbi/02.html

データソース:データベース名:接続ホストIPアドレス:ポート番号 という順番で記述すればいいらしい。

モジュールの設定ができたところで適当にデータベースを作成して、上のサイトにあるSQLをコピペしてテーブルを作りましょう。

これでtiarraを起動したときにLog::DBI loaded.というログが出てればとりあえず動くと思う。
なんかログが吐き出されるときにInsertするみたいだけど、これってUpdateされることがないからupdated_onとかいうカラムいらないんじゃないかと思っている。