- PR -

OS終了時のイベントログ出力について

1
投稿者投稿内容
TIROL
会議室デビュー日: 2009/02/05
投稿数: 2
投稿日時: 2009-02-05 21:59
VB.NETでWindowsサービスアプリを作成しています。

サービスを開始している状態でOSを再起動した場合にイベントログへログを出力するにはどのようにしたら良いのでしょうか。
OnShutdown()イベント内に以下のようにコードを書いたのですが出力されませんでした。

Protected Overrides Sub OnShutdown()
  EventLog.WriteEntry("MyService:OnStop", "AppStop")
End Sub

OnShutdown()内で適当なテキストファイルへの書き込みは出来たのでOnShutdown()が呼び出されていないわけでは無いようです。
CanShutdownプロパティはTrue/False両方試しました。

環境は以下の通りです。
・Visual Studio .NET 2003
・Windows XP Pro (SP2)

もし上記環境では無理ならば、具体的な方法は別にしてどの言語・どのOSならば出力できるか教えていただければと思います。
よろしくお願いします。
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2009-02-05 23:28
イベント ログに書き込むためには、イベント ソースの登録が必要だったと思いますが、それは済んでいると考えてよろしいでしょうか?
まだでしたら、一度お読みください→ http://msdn.microsoft.com/ja-jp/library/system.diagnostics.eventlog.aspx
TIROL
会議室デビュー日: 2009/02/05
投稿数: 2
投稿日時: 2009-02-06 10:05
返信ありがとうございます。

教えていただいたページを参考にCreateEventSource()も使用してみましたがダメでした。

OnShutdown内のコードをOnStop内に移しサービスを手動で停止させた場合はログに出力されるので、ログ出力のコードが根本的に間違っていることは無いと思います。

サービスアプリの場合、サービス停止時に「サービスは正常に停止しました。」といったイベントログをWindowsがなのかServiceBaseクラスがなのかはわかりませんが自動で出しているようなのですが、OSの再起動時はそのログも出ていないのでそもそも無理といった可能性もあるのでしょうか?
1

スキルアップ/キャリアアップ(JOB@IT)