ホーム > ASP.NET, インフラ > 簡単にイベントソースを登録する方法

簡単にイベントソースを登録する方法


ASP.NETで、というか、プログラムからイベントログを書き出したい場合、System.Diagnostics.EventLogクラスを使いますよね。

イベントソースが無いと例外が発生します。

EventLog.WriteEntry(string, string, EventLogEntryType)なんかでイベントログを書き出す場合、ちょっと注意が必要です。

イベントソースを指定していた場合、そのイベントソースが、そのコンピュータに存在しない場合は、勝手に登録してるのですが、登録する権限が実行ユーザーにないと、InvalidOperationExceptionの例外で失敗してしまいます。

エラーの内容を書き出したいのに、エラーを書き出す場合に失敗するとか悲しい結果になります。

 

そのイベントソースたぶん誰かが登録してます。

一番怪しいのは過去の自分です。デバック時にはVisual Studioを起動しているユーザーの権限でWebサーバーが動作しているので問題がなかったり、誰かが気を利かして(もしかして過去の自分かも)、イベントログを追加してくれていたりするのかもしれません。

普通なら、アプリケーションのセットアップでイベントログを追加するのですが、めんどくさがり屋さんは、コマンド一発で登録できる方法がないかなーと探すわけです。

 

EventCreateコマンド

イベントソースの登録そのものではないのですが、EventCreateコマンドを使うと、コマンドラインからイベントログを追加することができます。追加するログのイベントソースが存在しない勝手に作ってくれるのですから、管理者権限でこのコマンドを実行してあげれば、とりあえずイベントソースも勝手に作られることになります。

とりあえず、MyEventというイベントソースを作りたいのなら、こんなイベントログをEventCreateコマンドで作ってあげればいいでしょう。イベントIDは適当です。EventCreateの詳しい使い方は、@ITがわかりやすいです。

> EventCreate /ID 1000 /T INFORMATION /L APPLICATION /SO MyEvent /D "イベントログの初期化"

もちろん管理者権限でコマンドプロンプトを実行しないと、アクセス拒否ではじかれるので注意してください。

成功すると、こんな感じのイベントログが作成されます。

image

 

ちゃんとセットアップまたは、セットアップ手順を作りましょうね。

こういうことを、その場でやっちゃうと、あとで改めてそのサーバーをセットアップするときに絶対困るので、やっぱりちゃんとセットアップの中に組み込みましょうね。もちろん、WordやExcelのセットアップ手順書にこのコマンドを書いてもいいと思います。あとで困らないようにすることが重要。

カテゴリー:ASP.NET, インフラ タグ:
  1. まだコメントはありません。
  1. 2011年3月2日 12:43 AM

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

%d人のブロガーが「いいね」をつけました。