C#イベントログの汎用実装 一例
2009/12/02 17:49Update
C#プログラムの実行情報やエラーメッセージなどをWindows OSに標準で搭載されている「イベント ビューア」に登録する方法について。
以下はC#言語の汎用的な実装一例です。
呼び出し例:
.
[スタート]メニュー
⇒ [コントロール パネル]
⇒ [管理ツール]
⇒ [システムツール]
⇒ [イベント ビューア]
または
[マイコンピュータ]を右クリック
⇒ [管理]
⇒ [システムツール]
⇒ [イベント ビューア]
などの方法でイベントログを表示することができます。
イベントログに登録 C#実装例
using System;
using System.Collections.Generic;
using System.Text;
using System.Diagnostics;
using System.Configuration;
using System.IO;
using System.Web;
namespace Common.Log
{
/// <summary>
/// イベントログ クラス
/// @author: syboos.jp
/// </summary>
public class EventLogger
{
private const String EVENT_LOG_SOURCE = "MyEventLogSource";
private const String EVENT_LOG_NAME = "MyEventLog";
private static EventLogger instance = new EventLogger();
/// <summary>
/// コンストラクタ
/// </summary>
private EventLogger()
{
if (!EventLog.SourceExists(EVENT_LOG_SOURCE))
{
EventLog.CreateEventSource(EVENT_LOG_SOURCE, EVENT_LOG_NAME);
}
}
/// <summary>
/// インスタンス取得
/// </summary>
public static EventLogger Instance
{
get { return instance; }
}
/// <summary>
/// リクエスト・イベント・ログ
/// </summary>
public void LogRequest()
{
StringBuilder sb = new StringBuilder();
sb.Append(HttpContext.Current.Request.Url.ToString());
sb.Append(" / ");
sb.Append(DateTime.Now.ToString());
sb.Append(" / ");
sb.Append(HttpContext.Current.Request.UserAgent.ToString());
EventLog.WriteEntry(EVENT_LOG_SOURCE, sb.ToString(), EventLogEntryType.Information);
}
/// <summary>
/// エラー・イベント・ログ
/// </summary>
/// <param name="msg"></param>
public void LogError(String msg)
{
logEvent(msg, EventLogEntryType.Error);
}
/// <summary>
/// インフォメーション・イベント・ログ
/// </summary>
/// <param name="msg"></param>
public void LogInfo(String msg)
{
logEvent(msg, EventLogEntryType.Information);
}
/// <summary>
/// 指定するメッセージ・イベントタイプでイベントログに書き込み
/// </summary>
/// <param name="msg"></param>
/// <param name="type"></param>
private void logEvent(String msg, EventLogEntryType type)
{
EventLog.WriteEntry(EVENT_LOG_SOURCE, msg, type);
}
}
}
呼び出し例:
EventLogger.Instance.LogRequest(); //リクエスト情報をイベントログに登録
EventLogger.Instance.LogError("エラー情報・・・"); //エラー情報をイベントログに登録
.
イベントログの表示
[スタート]メニュー
⇒ [コントロール パネル]
⇒ [管理ツール]
⇒ [システムツール]
⇒ [イベント ビューア]
または
[マイコンピュータ]を右クリック
⇒ [管理]
⇒ [システムツール]
⇒ [イベント ビューア]
などの方法でイベントログを表示することができます。
Sponsored Link
- Relative Articles
- JLCA で JavaコードをC#に変換する - (2009/10/14 15:28)
- Console.Out.WriteLineでコンソールで出力する - (2009/10/15 16:09)
- typeofによる 型(System.Type)の取得 - (2009/10/15 16:58)
- C#クラスの継承と親コントラクタの呼び出し方法 一例 - (2009/10/19 18:12)
- サンプルから学ぶ C# クラスの定義方法 - (2009/10/21 16:36)
- C#言語でのThreadLocal実装方法 - (2009/10/23 17:18)
- カスタムユーザコンポーネントWindowsControlLibraryの作成とその利用方法 - (2009/11/09 13:39)
- C# クラスにカスタム・イベントの実装 - (2009/11/10 18:19)
- C# オブジェクトの型の判定 - (2009/11/11 16:22)
- C# ジェネリック(generic)実装例 - (2009/11/24 18:37)