The Core Technologies Blog
Windows サービスは、バックグラウンドで「ヘッドレス」かつ無人で実行するように設計されており、ユーザーがログオンしていない場合もあるので、従来のポップアップ ウィンドウを使って簡単にその活動を報告することはできない。 その代わりに、サービスは重要な通信を Windows イベントログ (メッセージやイベントを収集し保存する管理ユーティリティ) に送信することが推奨されます。 いったん記録されると、これらのメッセージは、たとえば、サービスが予期せず停止したとき、またはまったく起動しないときなど、問題のトラブルシューティングに非常に役立ちます。
Windows サービスからのイベントの表示
Microsoft のイベント ビューアを使って、イベント ログに書き込まれたメッセージを確認します。 スタートボタンをクリックし、イベントビューアと入力するか、コントロールパネルから(名前で検索して)アプリケーションを起動します。 5697>
左側には、マシンに取り込まれた様々なログをグループ化したツリーが表示されます。 Windowsサービス(およびPC上で実行されている他のアプリケーション)からのイベントは、Windowsログ>アプリケーションの下にファイリングされます。 このセクションに移動すると、ウィンドウの中央にイベントが読み込まれ、上部にリスト全体、下部にハイライトされたイベントの詳細が表示されます:
Windows サービスからのメッセージには、ソース列にそのサービスの表示名が記載されています。
イベントの重要な構成要素
イベント ビューアでは、各イベントに関連する次のような 10 以上の情報が表示されます:
- Level – このイベントの重要度
各イベントは 3 つのカテゴリのいずれかに分類されます:
Information.Log – このイベントの重要度。 有益だが重要でないイベント。 アプリケーションやサービスから特定の問題を調査していない限り、これらは安全に無視できます。 警告。 中程度に重要なイベントです。 これらは必ずしも障害を意味するものではなく、ソフトウェアはおそらくそのまま動くでしょうが、言及されていることが解決できるかどうかを確認するために、定期的にレビューされるべきです。 エラー
- 日付と時刻 – このイベントがいつ発生したか。
- ソース – どのアプリケーションがこのイベントを報告したか。
前述のように、Windows サービスによって書き込まれたイベントは、ソースとしてサービスの表示名を含みます。
たとえば、この情報イベントは、インタラクティブ サービス検出サービス (“UI0Detect”) が、セッション 0 でメモ帳が表示されていることを報告したものです。
Windows サービスに関するイベントの表示
アプリケーション ログが実行中サービスからイベントを記録するのに対し、Windows ログ > システム領域はサービスが開始、停止、異常停止、起動不能の時に記録します。 ソースがサービスコントロールマネージャ(SCM)に設定されているイベントを探します。 たとえば、以下は Windows Print Spooler サービスがクラッシュしたことを伝える SCM です。
AlwaysUp と Service Protector からのイベントの表示
AlwaysUp と Service Protector はどちらもイベントログのアプリケーションセクション (Windows Log > Application) にメッセージを書き込みます。
AlwaysUpの場合、「マイアプリケーション」という名前のアプリケーションからのイベントは、ソースがマイアプリケーション(AlwaysUpServiceによって管理)に設定されてログに記録されます。 イベントログメッセージのページでは、報告されたイベントの一覧と説明が表示されます。