Windows EventLog にログを記録する ASP.NET アプリケーションを作成しています。これを行うには、最初にイベント ソースを作成する必要があります。これには管理者権限が必要なため、ASP.NET アプリでは実行できません。
イベント ログ ソースを作成できる、Windows にバンドルされている既存のコマンド ライン アプリケーションはありますか? それとも、独自のコマンド ライン アプリケーションを展開する必要がありますか?
Windows EventLog にログを記録する ASP.NET アプリケーションを作成しています。これを行うには、最初にイベント ソースを作成する必要があります。これには管理者権限が必要なため、ASP.NET アプリでは実行できません。
イベント ログ ソースを作成できる、Windows にバンドルされている既存のコマンド ライン アプリケーションはありますか? それとも、独自のコマンド ライン アプリケーションを展開する必要がありますか?
例:
eventcreate /ID 1 /L APPLICATION /T INFORMATION /SO MYEVENTSOURCE /D "My first log"
これにより、イベントログの下にevent typeという名前の新しいイベントソースが作成されます。MYEVENTSOURCE
APPLICATION
INFORMATION
このユーティリティは、XP 以降でのみ含まれていると思います。
Windows IT Pro: JSI ヒント 5487。Windows XP には、カスタム イベントを作成するための EventCreate ユーティリティが含まれています。
eventcreate /?
CMDプロンプトに入力
Microsoft TechNet: Windows コマンド ライン リファレンス: Eventcreate
SS64: Windows コマンド ライン リファレンス: Eventcreate
これを PowerShell 2.0 以降に投入します。
一度実行New-EventLog
して、イベント ソースを登録します。
New-EventLog -LogName Application -Source MyApp
次に、使用Write-EventLog
してログに書き込みます。
Write-EventLog
-LogName Application
-Source MyApp
-EntryType Error
-Message "Immunity to iocaine powder not detected, dying now"
-EventId 1
次のコマンドでWindowsPowerShellを使用することもできます。
if ([System.Diagnostics.EventLog]::SourceExists($source) -eq $false) {
[System.Diagnostics.EventLog]::CreateEventSource($source, "Application")
}
CreateEventSourceを呼び出す前に、ソースが存在しないことを確認してください。存在しない場合、例外がスローされます。
詳細情報:
eventcreate2ではカスタム ログを作成できますが、 eventcreateでは作成できません。
または、コマンド ライン コマンドを使用します。
イベントクリエイト
ただし、cmd/batch バージョンは機能しますが、1000 より大きい eventID を定義する場合に問題が発生する可能性があります。
$evt=new-object System.Diagnostics.Eventlog(“Define Logbook”)
$evt.Source=”Define Source”
$evtNumber=Define Eventnumber
$evtDescription=”Define description”
$infoevent=[System.Diagnostics.EventLogEntryType]::Define error level
$evt.WriteEntry($evtDescription,$infoevent,$evtNumber)
サンプル:
$evt=new-object System.Diagnostics.Eventlog(“System”)
$evt.Source=”Tcpip”
$evtNumber=4227
$evtDescription=”This is a Test Event”
$infoevent=[System.Diagnostics.EventLogEntryType]::Warning
$evt.WriteEntry($evtDescription,$infoevent,$evtNumber)
diagnostics.Event ログ クラスを使用して、独自のカスタム イベントを作成できます。Windows アプリケーションを開き、ボタンをクリックして次のコードを実行します。
System.Diagnostics.EventLog.CreateEventSource("ApplicationName", "MyNewLog");
「MyNewLog」は、ログイン イベント ビューアに付けたい名前を意味します。
詳細については、このリンクを確認してください [ http://msdn.microsoft.com/en-in/library/49dwckkz%28v=vs.90%29.aspx]