読者です 読者をやめる 読者になる 読者になる

kikki's tech note

技術ブログです。UnityやSpine、MS製品など技術色々について解説しています。

WindowsログのApplicationにイベントログを登録するには

C# Windows Windows Server

本章では、以下記事で作成したログ出力用ライブラリを実際に運用環境で利用するための手続きについて紹介します。
kikki.hatenablog.com

はじめに

Windowsのイベントにログを出力するためには、C#で「EventLog」クラスを利用するだけではなく、レジストリにどのソースがログとして書き込まれるかを事前に登録する必要があります。

手続き

今回は、ログの書き込み登録に「bat」ファイルを利用します。以下の処理を「bat」ファイルに書き込み、運用環境で実行します。

@echo off
cd /d "%~dp0"
 
rem イベントソース名
set APP_NAME=【ソース名】
 
rem 完全キー名
set ROOT_KEY=HKLM\SYSTEM\CurrentControlSet\Services\EventLog\Application\%APP_NAME%
 
rem キーおよびサブキーを追加
reg add "%ROOT_KEY%" /v EventMessageFile /t REG_EXPAND_SZ /d "C:\Windows\Microsoft.NET\Framework64\v4.0.30319\EventLogMessages.dll" /f
reg add "%ROOT_KEY%" /v TypesSupported /t REG_DWORD /d 7 /f

これで利用準備が整いました。実際にログを出力すると、イベントログに書き込まれていることが確認できると思います。
実際にログを書きだした様子が以下の通りです。
f:id:kikkisnrdec:20160310095144p:plain

ログレベルが情報で書き込まれています。検索やフィルター機能でログを整理して確認できるため、非常に便利かと思います。

筆休め

Windowsでのログ出力は、最近、ETWが話題に挙がります。しかしETWは、ログの書き込みから確認までの手続きが難しいため、簡素な運用では「EventLog」を利用する方法もいいかと思いました。

以上、「WindowsログのApplicationにイベントログを登録するには」でした。

※無断転載禁止 Copyright (C) 2015 kikkisnrdec All Rights Reserved.