C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

ログファイル作成について


(過去ログ 6 を表示中)

[トピック内 9 記事 (1 - 9 表示)]  << 0 >>

■6582 / inTopicNo.1)  ログファイル作成について
  
□投稿者/ Hiro 二等兵(3回)-(2006/09/19(Tue) 13:43:36)

分類:[VB.NET] 


分類:[VB.NET] 

いつも参考にさせていただいています。
複数の実行ファイルからアクセスして一つのファイルにログを書き込むような
クラスを作成しようと考えているのですがどのように考えればよいか分からず
悩んでいます。一つの実行ファイルからログファイルを作成し、ログを取得す
すのはできました。どのように考えたらよいか教えて下さい。お願い致します。

環境は、VB.NET 2005 win2000です。

0
引用返信 編集キー/
■6583 / inTopicNo.2)  Re[1]: ログファイル作成について
□投稿者/ まどか 大佐(231回)-(2006/09/19(Tue) 14:06:25)

分類:[VB.NET] 

> 複数の実行ファイルからアクセスして一つのファイルにログを書き込むような
> クラスを作成しようと考えているのですが

FileStreamクラスのコンストラクタでFileShare列挙体を指定すればいけるような気もしますが
同時アクセスなど考慮点やリスクが大きいと思います。

書き込みを一箇所にして、ログ文字列を渡すという方式にしたほうが無難だと思います。
一番簡単なのはOSのイベントログですかね?

0
引用返信 編集キー/
■6593 / inTopicNo.3)  Re[2]: ログファイル作成について
□投稿者/ ダッチ 二等兵(10回)-(2006/09/19(Tue) 21:50:11)

分類:[VB.NET] 

> いつも参考にさせていただいています。
> 複数の実行ファイルからアクセスして一つのファイルにログを書き込むような
> クラスを作成しようと考えているのですがどのように考えればよいか分からず
> 悩んでいます。一つの実行ファイルからログファイルを作成し、ログを取得す
> すのはできました。どのように考えたらよいか教えて下さい。お願い致します。

同じ方法で複数の実行ファイルからログファイルを作成するとできると思います。
作成するログファイル名を同じにすればいいだけですので。

ただそうした場合に
まどかさんが仰っているように

> FileStreamクラスのコンストラクタでFileShare列挙体を指定すればいけるような気もしますが
> 同時アクセスなど考慮点やリスクが大きいと思います。

となってしまいます。

> どのように考えたらよいか教えて下さい。お願い致します。

一つの実行ファイルが一つのログファイルを作成するのが一番良い方法ではないでしょうか。
ここまでなら既にできているようですので。

それとも何か特別な事情などあるのでしょうか。


0
引用返信 編集キー/
■6599 / inTopicNo.4)  Re[3]: ログファイル作成について
□投稿者/ 魔界の仮面弁士 中尉(140回)-(2006/09/19(Tue) 23:00:25)

分類:[VB.NET] 

> まどかさんが仰っているように
>> 同時アクセスなど考慮点やリスクが大きいと思います。
> となってしまいます。

それでも、同名ファイルで管理するのであれば、たとえば
同時アクセスに対する対処方法として、
 1. 成功するまで、一定回数(あるいは一定時間)再試行する。
 2. 通知する。(書き込みが失敗したら、メソッドの戻り値で伝えるなど。)
 3. 無視する。(ログは書き込まれず、その時のデータは単に失われる。)
 4. 書き込みできない場合は、例外を発生させる。
 5. 代替先に書き込む。(イベントログとか、別名ファイル出力とか)
などが考えられるかと思います。


実例をあげてみると、Debug / Trace によるログ出力にて使用される
『TextWriterTraceListener クラス』に関しては、上記の 5 が使われており、

Trace.Listeners.Add(New TextWriterTraceListener("C:\a.txt"))
Trace.WriteLine("Message 1")
Trace.WriteLine("Message 2")
Trace.Flush()

指定したファイル(上記では C:\a.txt) にアクセスできなかった場合には、別名の
ファイル(たとえば "C:\877e6101-1c11-4142-9d82-b9003c0073dea.txt" など)に
書き込むようになっているようです。

---
http://msdn2.microsoft.com/ja-JP/library/system.diagnostics.textwritertracelistener.aspx

》メモ
》使用中のファイルまたは使用できないファイルへの書き込みを試みた場合、
》ファイル名にプレフィックスとして GUID が自動的に付けられます。

0
引用返信 編集キー/
■6730 / inTopicNo.5)  Re[4]: ログファイル作成について
□投稿者/ Hiro 二等兵(4回)-(2006/09/22(Fri) 18:06:04)

分類:[VB.NET] 

返事が遅くなりすいません。
みなさんありがとうございます。

ダッチさんがいわれるように最初は各アプリケーション毎にと思っていました。

>一つの実行ファイルが一つのログファイルを作成するのが一番良い方法ではないでしょうか。
>ここまでなら既にできているようですので。


>それとも何か特別な事情などあるのでしょうか。
特別な事情というわけではないのですが、全体の操作ログ流れの確認をしたいと一つの
ファイルに書き込めたらと思いました。

ただその時にまどかさんが仰っているようにリスクがあると思っていたので何か方法は
ないものかと質問させてもらいました。

> FileStreamクラスのコンストラクタでFileShare列挙体を指定すればいけるような気もしますが
> 同時アクセスなど考慮点やリスクが大きいと思います。


やはり魔界の仮面弁士 さんのような方法を行うしかないのでしょうかね。


0
引用返信 編集キー/
■6752 / inTopicNo.6)  Re[5]: ログファイル作成について
□投稿者/ あん 二等兵(1回)-(2006/09/23(Sat) 18:44:36)

分類:[VB.NET] 

> 特別な事情というわけではないのですが、全体の操作ログ流れの確認をしたいと一つの
> ファイルに書き込めたらと思いました。
アプリケーションログをアプリごとに出力して
確認するときファイルをマージすればいいと思います。

他にはそれぞれのアプリでログの内容をMQに出力して
ログを監視するプログラムを作って
MQからログを取りだしてひとつのログファイルに出力するとか


0
引用返信 編集キー/
■6753 / inTopicNo.7)  Re[6]: ログファイル作成について
□投稿者/ だく 二等兵(10回)-(2006/09/23(Sat) 18:55:21)

分類:[VB.NET] 

例えばログはデータベースに記録して、定期的にデータベースからファイルに
書き出すようにするという方法も考えられると思います。

0
引用返信 編集キー/
■6758 / inTopicNo.8)  Re[1]: ログファイル作成について
□投稿者/ 渋木宏明(ひどり) 二等兵(8回)-(2006/09/24(Sun) 00:35:43)
渋木宏明(ひどり) さんの Web サイト

分類:[VB.NET] 

> 複数の実行ファイルからアクセスして一つのファイルにログを書き込むような
> クラスを作成しようと考えているのですがどのように考えればよいか分からず
> 悩んでいます。

書き込み先はファイルじゃなきゃダメなんですか?

イベントログなら、物凄く手軽に書き込めますよ。

排他処理も勝手にやってくれるのでラクチンです。


0
引用返信 編集キー/
■6767 / inTopicNo.9)  Re[2]: ログファイル作成について
□投稿者/ 中博俊 神(744回)-(2006/09/24(Sun) 10:56:51)

分類:[VB.NET] 

イベントログって1回の処理で1000も2000もエントリ作るのには向いてないですよね(^^

0
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -