C#オペレーティングシステムのログ

  EventLogにとEventLogEntryクラスだけでなく、システムログとの対話:C#プログラミングを使用して、システムログを確認し、ログは、2つのカテゴリについて説明します。

たSystem.Diagnostics名前空間属し、両方の相互作用システムログクラスとEventLogEntryを提供.NET FrameworkクラスライブラリEventLogクラス

まず、変数を宣言:民間EventLogEntryCollection eventCollectionは、システムログのコレクションを表します。 

    EventLogクラスの属性は次のとおりです。

  Entrisは、イベントログの内容を表しEventLogEntryCollection型の値を返します

  ログ取得やアプリケーションログアプリケーションでログの名前を返す、システムログ、システム、セキュリティログのセキュリティは、デフォルトでは空の文字列です。

  イベントログのフレンドリ名を取得LogDisplayName 

    MachineNameには、コンピュータの上の名前イベントへの読み取りや書き込みを取得または設定します

  ソースの名前を登録して使用するために、イベントログへの書き込み時にソースを取得または設定します

例EventEntryCollectionクラスは、サイズと列挙子EventLogEntryセットを定義します。いくつかの重要な特性EventLogEntryクラス次のように:

  対応するテキストとCategoryNumberのカテゴリー獲得。

    CategoryNumberは、クラス番号を取得します。  

  データはバイナリデータに対応する取得します。

EntryTypeは、このタイプのイベントを取得し、その値はEventLogEntryType列挙に属し、主要メンバーの列挙は次の通りです:

  ユーザーは、このようなデータや機能低下などの深刻な問題を、知っておくべきことを示すエラーErrorイベント、;

  監査は、そのようなファイルを開こうとして、アクセスの試みを失敗した場合を示しFailureAudit失敗監査イベント.;

  。イベント、イベントの成功について、その重要な情報を示す情報。

  それは彼らがログインしたときにアクセス試行が、このようなセキュリティインシデントとして、成功した監査を受けたときにSuccessAudit成功の監査イベントが示しています;

  警告警告イベントは、それがすぐに重要な問題でないことを示すが、これは条件が将来的に問題を引き起こす可能性があることを示している可能性があります;

  イベントIDは、特定のイベントのこのイベント・アイテム識別子のアプリケーションを取得します。

  インデックスは、イベントログにインデックスを取得します。

  MachineNameには、生成されたコンピュータの名前を取得します。

  メッセージには、イベントにローカライズされたメッセージを取得します。

  ReplacementStringsに対応する置換文字列を取得します。

  ソースがイベントを生成したアプリケーションの名前を取得します。

  イベントを生成したローカルタイムを取得TimeGenerated。

  TimeWrittenは、イベントログに書き込まれたローカルタイムを取得します。

  ユーザー名は、イベントを担当するユーザーの名前を取得します。

 次のようにコード例は以下のとおりです。

システムを使用しました。

たSystem.Diagnosticsを使用しました。

名前空間のログ表示

{

パブリッククラスSysLogView

{

プライベートEventLogEntryCollection eventCollection。

プライベートEventLogにsystemEvent。

公共SysLogView()

{

systemEvent =新しいのEventLog();

systemEvent.Log = "システム";

eventCollection = systemEvent.Entries。

}

プライベート無効LoadEventLog(int型のC)

{

EventLogにsystemEvent =新しいのEventLog();

systemEvent.Log = "システム";

eventCollection = systemEvent.Entries。

int型の長さ= eventCollection.Count。

EventLogEntryエントリ= eventCollection [C]。

文字列[]タイトル= {

entry.EntryType.ToString()、

entry.TimeGenerated.ToLongDateString()、

entry.TimeGenerated.ToLongTimeString()、

entry.Source、

entry.Category、

entry.EventID.ToString()、

entry.UserName、

entry.MachineName

}。

以下のための(int型J = 0; jの<title.Countあり、j ++)

{

Console.WriteLineを(タイトル[J])。

}

Console.WriteLineを( "\ n" は+ entry.Message)。

}

プライベート文字列DisplayEventCount()

{

リターン(length.ToString());

}

公共の静的な無効メイン(文字列[] args)

{

SysLogView SLV =新しいSysLogView();
IF(args.length == 1)
{
int型のx = Convert.ToInt32(引数[0])。
slv.LoadEventLog(X)。
}

{
Console.WriteLineを( "イベント数:" + slv.DisplayEventCount())。
}
}
}
}

C#が、システムログを作成します。

システムを使用しました。
System.Collections.Genericを使用しました。
System.Textのを使用しました。
たSystem.Diagnosticsを使用しました。

名前空間のログ
{
クラスLogWirter
{
/// <要約>
///事件源名称
/// </要約>
プライベート文字列eventSourceName。
EventLogEntryType eventLogType;
パブリックLogWirter()
{
eventSourceName = "テスト"。
eventLogType = EventLogEntryType.Error。
}

/// <まとめ>
///イベントメッセージソース名
/// </要約>
パブリック文字列EventSourceName
{
SET = {eventSourceName値;}
}

/// <まとめ>
///イベントメッセージタイプ
/// </要約>
公共EventLogType EventLogEntryType
{
SET = {eventLogType値;}
}

/// <要約>
///写入系统日志
/// </要約>
///ます。<param name = "メッセージ">事件内容</ param>の
公共のボイドのLogEvent(文字列メッセージ)
{
(!EventLogにあれば。 SourceExists(eventSourceName))
{
EventLog.CreateEventSource(eventSourceName、 "アプリケーション")。
}
EventLog.WriteEntry(eventSourceName、メッセージ、EventLogEntryType.Error)。
}
}

 

 

おすすめ

転載: www.cnblogs.com/b2cup/p/11936620.html