サンプル コードを書き起こす

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
このあたりを参考にとりあえずがんばってみて、それで駄目だったら買いに行こうかな。


なお現在、「こんな機能があったらいいんでねーの?」とか「コード間違ってるし」というご意見募集中です。随時コメントください!!