はじめに

コネクションに関するロギング機能はKairyu本体には実装されていませんので、以下のプロジェクトを参照設定に追加してください。
Project file 必須 備考
Kairyu.Extensions.Connection.vbproj 必須 DB接続の基底となる処理が記述されています。

現在のところロギングできる内容は以下のとおり。
関数名 備考
OnConnectionStatusChange 接続切断イベントのフック
OnBeforeCommit コミット直前イベントのフック
OnTransactionStatusChange トランザクション開始終了、ロールバックイベントのフック

使い方

書き方が決まりきっているため、サンプルを元に説明します。
Kairyu.Extensions.Connection.Log.OnConnectionStatusChange =
    Sub(sender, e)
        Debug.Print(String.Format("connection is {0}", e.CurrentState.ToString))
    End Sub

Kairyu.Extensions.Connection.Log.OnBeforeCommit =
    Sub(sender, e)
        Debug.Print("*before commit*")
    End Sub

Kairyu.Extensions.Connection.Log.OnTransactionStatusChange =
    Sub(sender, e)
        Debug.Print(String.Format("transaction is {0}", e.State.ToString))
    End Sub
  • 両関数ともデリゲートですので、コールバックしてほしいロジックを紐付すればOKです。
  • フックしたあとは Debug.Print するなり、log4net[logging.apache.org] を使うなりお好きにどうぞ。
  • ログの書式を変えたい場合は、引数(EventArgs)を参照してください。
  • OnBeforeCommit関数はフレームワーク開発者向けのログなので、普段はフックしなくてもいいかもしれません。

備考

ロギング処理はORM動作の必須条件ではありませんので、この処理を書かなくてもORMは利用できます。
が、コネクションやトランザクションのロギングは各種原因調査に非常に役立ちますので、ログを取ることをお勧めいたします。
  • log4netでいうところの、Debugレベルで出力させるようにしておいて、必要に応じて出力・非出力を切り替えるのがよいかと思います。

Last edited Mar 10, 2013 at 7:32 AM by mk3008, version 3

Comments

No comments yet.