- - PR -
ASP.NETでログファイルの作成
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2005-10-20 14:35
お世話になります。
ASP.NETでWebアプリケーションを作成しています。 FileStreamを使用してWebからの特定の処理に関してログを残すという方法は、 現実的に可能なのか教えてください。 Webですので、当然、複数のクライアントから同時にアクセスされますので、 同時にテキストファイルに書き込もうとすると、当然、エラーになるのは、わかるのですが、 エラーになる場合は、リトライしたり、しばらく後に書き込むことで可能とも思われます。 データベースを使用すればよいのかもしれませんが、そこまでのことはしたくないのです。 それなりにリスクも少なく、手軽な、都合のよい方法はないものでしょうか? よろしく、お願いします。 | ||||
|
投稿日時: 2005-10-20 14:47
ご要望のことは、Traceで可能かもしれないです。 http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/cpref/html/frlrfsystemdiagnosticstraceclasstopic.asp?frame=true 出力方法は、TraceListener クラスを継承したクラスにトレースリスナを切り替えて 変更できます。 デバッグに使いたいということなら http://www.microsoft.com/japan/msdn/columns/asp/asp01252001.asp http://ja.gotdotnet.com/QuickStart/aspplus/default.aspx?url=%2fquickstart%2faspplus%2fdoc%2ftracelogpage.aspx _________________ たつごろー http://www.codeseek.net MS MVP - Visual Developer Visual Basic (2005/08 - 2006/07) [ メッセージ編集済み 編集者: たつごろー 編集日時 2005-10-20 14:48 ] | ||||
|
投稿日時: 2005-10-20 14:54
適当なApplication変数を作って、Application.Lockを使って排他制御を
すればいいんじゃないでしょうか。 Lockしている間にファイルへの書き込みを行えば、同時に書き込み処理が はしることはありません。 ちょっと処理はもたつく可能性はありますが、簡単に扱えるということでは これが一番楽かと。 なお、ファイルへの書き込みについてはそのための権限がASP.NETの 実行ユーザに必要なので、そのあたりを自分で設定できる、というのは 最低限の条件になります。 | ||||
|
投稿日時: 2005-10-20 15:18
どっとねっとふぁんさんと基本同じですけど。
ログクラスを自作する手もあります。 ファイルへの書込処理は、 スレッドセーフになるように、 Lockする必要があります。 ログファイル名は、 日付単位かユーザ単位で変えていけば 便利かも知れません。 自作のログクラスであれば、 出力先を切り替えて、 イベントログに吐くようにしたり、 やっぱりTrace出力にしたり、 出力情報を追加したり、 開発時と運用時で出力レベルを切り替えたり、 と、けっこう融通が利きました。 #文章修正・融通の利く例を追加 [ メッセージ編集済み 編集者: 葉瀬崎浩樹 編集日時 2005-10-20 15:31 ] | ||||
|
投稿日時: 2005-10-20 15:30
私なら EventLog に書きますね。
| ||||
|
投稿日時: 2005-10-25 18:47
EventLog って、連続書き込みが出来ないことないですか?
私も、どっとねっとふぁんさんと同じ方法を使っています。 あと、使ったことはないのですが、よく聞く名前として、log4net とか。 ___________________________________________________________________ □ written by Jitta on 2005/10/20 □ Microsoft MVP :Visual Developer ASP/ASP.NET Oct.2004-Sept.2006 _________________ | ||||
|
投稿日時: 2005-10-26 09:41
おおっ。そうなんですか? 以前に関わったシステムでは、 Page_ErrorやAppication_Errorに飛び込んできた場合、 通常のログファイル出力とは別に、 追加でEventLogにも書き込むようにしました。 連続で例外が起きた場合。。大丈夫かな(-"-; | ||||
|
投稿日時: 2005-10-26 10:30
LoggingABという手も
市川さんの 連載 Enterprise Library概説 拡張性と使いやすさを併せ持つログ出力機能を実装しよう ―― ベスト・プラクティスを追求した「Logging & Instrumentation Application Block」 ―― http://www.atmarkit.co.jp/fdotnet/entlib/entlib04/entlib04_01.html Enterprise Libraryの日本語情報はここからも http://enterpriselibrary.jp/ _________________ たつごろー codeseek こみゅぷらす |
1