- - PR -
[EntLib2.0]発生したExceptionの内容をDBへ書き込む方法
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2006-10-27 13:58
OS :WindowsXP Pro
Server :SQLServer2000 開発環境 :Microsoft Visual Studio 2005 お世話になります。 現在、上司から「Enterprise Library 2.0」を利用したサンプルの作成を命じられています。 内容としては、プログラム実行中に発生したExceptionをTry Catchで捕まえ、 Exception Handling Application Block (以下EHAB) Logging Application Block (以下LAB) Data Access Application Block (以下DAAB) を使い、データベース及びメールにてExceptionの内容を通知するというものです。 Exception Handling Application Blockを使ったExceptionの吐き出しは完全にお手上げ。 ひとまず保留としました。 ひとまずLABとDAABの連携で、ログをDBへ書き込むとこから手をつける事にしたのですが。 Database Trace Listenerの使い方がさっぱりわかりません。 Formatted EventLog TraceListener がイベントログへの書き出し FlatFile TraceListener がLogファイルへの書き出しだったので Database Trace Listener はDBへの書き出しだろう。 という推測で色々調べてみたのですが… まず、DBのどのテーブルへどのような内容を書き込むのか、 そういった設定をどこから行うのかわかりませんでした。 (それ以前に目的の機能を提供するものではないのかもしれませんが) 実際に以下のような検証用のコードを記述しましたが、 実行すると特にエラーも出ずに最後まで処理が流れます。 Public Class Form1 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Try Dim int As Integer = Integer.Parse("abc") Catch ex As Exception Dim log As New LogEntry log.Message = ex.Message Logger.Write(log) End Try End Sub End Class 参照設定の追加 Microsoft.Practices.EnterpriseLibrary.Common.dll Microsoft.Practices.EnterpriseLibrary.Data.dll Microsoft.Practices.EnterpriseLibrary.ExceptionHandling.dll Microsoft.Practices.EnterpriseLibrary.ExceptionHandling.Logging.dll Microsoft.Practices.EnterpriseLibrary.Logging.Database.dll Microsoft.Practices.EnterpriseLibrary.Logging.dll Microsoft.Practices.ObjectBuilder.dll System.configuration app.config の設定はほとんどEnterprise Library Configurationで作った初期設定のままです。 DatabaseInstance に、DB接続のためのConnection Stringを指定 Formatter に、Text Formatterを指定しています。 また、Cドライブ直下のLogファイルと、イベントログにExceptionの内容を吐き出すように設定しています。 ログファイルとイベントログには正常に出力されています。 DBへのログの吐き出しはどーなってしまったか皆目検討もつきません(汗 EntLibに関する情報が少ないのは承知しておりますが、 どなたかEntLb2.0を使った、DBへのExceptionの内容を登録する方法をご存知ないでしょうか? | ||||
|
投稿日時: 2006-10-27 18:07
http://forums.asp.net/thread/1292242.aspx
こんなページを見つけた。 Database Trace Listener を使ったプログラムでエラーが起きるとか、 そんな内容のようだ 投稿されているConfigの内容な細かい部分で違うものの大筋で同じだ。 またエラーの内容は必要なdllへの参照が足りなかったというものらしい。 それで正常に動作した、という事なので… やっぱり、私の作ったプログラムも正常に動いているのだろうか? 私が機能を勘違しているだけかもしれない。 正常に動いてるとすれば、どこかしらにExceptionの内容が記録されると思うのだが… ロギングという処理そのものを私は勘違いしてるのかもしれない。。。 引き続き調べます。 | ||||
|
投稿日時: 2006-10-27 23:36
http://www.atmarkit.co.jp/fdotnet/entlib/index/index.html
↑ これはすでに読んだ? _________________ | ||||
|
投稿日時: 2006-10-29 20:08
お返事ありがとうございます。
記事は読んでいます。 が、不安になったので読み直しました。 連載でLoggingABについて解説しているときのVerが1.1で、 やはり直接の答えはないようですが… 多分、私がやりたいのは1.1で言うDatabase Sinkになるのでしょうね。 そういえば、Coreに移動したInstrumentationは使っていませんが… これの設定が必要なのかもしれません、会社でまた試してみたいと思います。 | ||||
|
投稿日時: 2006-10-29 20:33
http://enterpriselibrary.jp/
この辺もチェックしてみましょう。 _________________ | ||||
|
投稿日時: 2006-10-30 10:38
Instrumentation は全然関係なかったー orz
http://enterpriselibrary.jp/ も、チェックはしているのですが… まだ全部をみたわけではなく、必要そうなとこだけをみています。 私、必要な情報が書いてあっても、それがわかってないのかもしれませんね(汗 下の投稿で、Database Sinkなのかなー とか投稿してますが。 2.0ではその辺どうなったのか、まだわかっていません。 教えていただいたサイトを含め、もう一度調べてみます。 | ||||
|
投稿日時: 2006-10-30 21:52
こういうことを防ぐために、「という推測で色々調べてみたのですが…」ではなく、どこを調べた(どの様なキーワードで検索したか)を、具体的に書いて欲しいのです。。。 (お互い、さみしいでしょ?) 市川さんは日本でただ一人の Enterprise Library の表彰を受けている人でかつ、MVP でもあるので、ブログの方にコメントしたり、Message Boards を利用しましょう。って、スパム攻撃受けてるしorz _________________ | ||||
|
投稿日時: 2006-10-31 10:12
レスありがとうございます。
ごめんなさい。 最初から、どうしようかとは思ったのですが… 自信を持ってこのページは見た、と言えるほど情報を拾い出せていない気がして つい、どこをどう調べたのか、という部分を省いてしまいました。 すみません、以下既に挙げて頂いたサイトも含め記述します。 Enterprise Library Index - @IT http://www.atmarkit.co.jp/fdotnet/entlib/index/index.html patterns & practices Enterprise Library http://enterpriselibrary.jp/ なにぱんの.NET で C# な日記 http://d.hatena.ne.jp/panda728z/searchdiary?word=%2a%5bEntLib2%2e0%5d CodeZine:Application Blockと連携するProviderの実装と構成ツールへの登録 http://codezine.jp/a/article.aspx?aid=198 なかよし研究所 : Enterprise LibraryのDAABで実験君 http://tech-ezo.jp/blogs/nakayoshi/archive/2005/05/18/224.aspx GotDotNet Japan 掲示板 アーカイブ http://www.microsoft.com/japan/msdn/community/gdn/ShowForumGroup.aspx Visual Studio User Group > フォーラム > .NET 開発 > Visual Basic http://vsug.jp/tabid/63/view/topics/forumid/44/Default.aspx Enterprise Library: Message Boards http://enterpriselibrary.jp/community/modules/newbb/ 後はここの会議室。 主に見ているところはこのくらいだと思いますが… 以前調べた時のメモや、Googleでの検索で上記のページにたどり着きました 検索はWeb全体で [Enterprise Library][EntLib][Database Sink][Database Trace Listener][App.config] 等を単体、又は組み合わせたり 他に[設定][インストール][とは?]等の言葉を付けたし検索して情報を探しています。 又、最初はしていなかったんですが、今は英語表記でそれらしい情報の書かれたページはページ翻訳かけて、原文と見比べながら情報を探しています。 情報をきちんとまとめて、ブログやメッセージボードも利用するようにしたいと思います。 最初からもっとまとめられてれば良かったんですが、 ようは「Database Trace ListenerってDBへログを書き出せるの?」「どう使うの?」 って事ですよね(汗 本当、最初からもっとまとめて書いていれば…) 引き続き、何か情報ありましたらよろしくお願いします。 何か情報が入り次第、こちらにも書き込みするようにします。 [ メッセージ編集済み 編集者: ユーレック 編集日時 2006-10-31 10:22 ] ただURLだけのせて、どこのページだか分かり難かったので修正 orz [ メッセージ編集済み 編集者: ユーレック 編集日時 2006-10-31 10:30 ] 考えた末、下記のメッセージボードを利用することにしました。 http://enterpriselibrary.jp/community/ [ メッセージ編集済み 編集者: ユーレック 編集日時 2006-11-02 11:04 ] |
1