サンプル コードを書き起こす
protected override void OnStart(string args)
{
using (FileStream saveFS = new FileStream("logs.txt", FileMode.Append))
using (StreamWriter saveSW = new StreamWriter(saveFS))
{
try
{
EventLog eventLogs = EventLog.GetEventLogs();
foreach ( EventLog log in eventLogs )
{
saveSW.Write(log.Log + "\n");
}
}
finally
{
saveSW.Close();
saveFS.Close();
}
}
}
とまぁ、今のところサービスが起動するときにとりあえず logs.txt に Event Log の中身を吐き出してしまえ! 的なプログラムになっています。
これに追加で、
- ログが書き込まれたら即ファイルへ吐き出す
- ログを吐き出したらイベント ログ側のログを削除
- ファイルは指定時間毎にローテーション
- ファイルをローテーションさせる間隔やイベントの選択なんかができる UI を持ったクライアント
を組み立てて、とりあえず 2 層構造のアプリケーションを組み立てることを方針にしています。
が、現在のところサービスを実体化させてインストールする方法で躓いていたりします。今日本屋で立ち読みした本にいろいろ書いてあったのですが、全部覚えて帰るには至らず。大方 6000 円もするんで、ちょっと手が出ないなぁと悩んでるんですよね。
http://www.microsoft.com/japan/msdn/library/ja/vbcon/html/vbtskaddinginstallerstoyourserviceapplication.asp
このあたりを参考にとりあえずがんばってみて、それで駄目だったら買いに行こうかな。
なお現在、「こんな機能があったらいいんでねーの?」とか「コード間違ってるし」というご意見募集中です。随時コメントください!!