次の方法で共有


EventLog.Delete メソッド

定義

ログ リソースを削除します。

オーバーロード

Delete(String, String)

指定したコンピューターからイベント ログを削除します。

Delete(String)

ローカル コンピューターからイベント ログを削除します。

Delete(String, String)

ソース:
EventLog.cs
ソース:
EventLog.cs
ソース:
EventLog.cs

指定したコンピューターからイベント ログを削除します。

public:
 static void Delete(System::String ^ logName, System::String ^ machineName);
public static void Delete (string logName, string machineName);
static member Delete : string * string -> unit
Public Shared Sub Delete (logName As String, machineName As String)

パラメーター

logName
String

削除するログの名前。 指定できる値は、アプリケーション、セキュリティ、システム、および指定したコンピューター上の任意のカスタム イベント ログです。

machineName
String

ログを削除するコンピューターの名前。ローカル コンピューターの場合は "."。

例外

logName が空の文字列 ("") または null

- または -

machineName が有効なコンピューター名ではありません。

指定したコンピューター上のイベント ログのレジストリ キーを開けませんでした。

- または -

指定したコンピューター上にログが存在しません。

イベント ログが正常に消去されませんでした。

- または -

ログを開くことができません。 Windows のエラー コードは使用できません。

次の例では、指定したコンピューターからログを削除します。 この例では、ソースからのログを決定します。

注意

複数のソースがイベント ログに書き込む場合があります。 カスタム ログを削除する前に、そのログに書き込む他のソースがないことを確認してください。

#using <System.dll>

using namespace System;
using namespace System::Diagnostics;
using namespace System::Threading;
int main()
{
   String^ logName;
   if ( EventLog::SourceExists( "MySource", "MyMachine") )
   {
      
      // Find the log associated with this source.    
      logName = EventLog::LogNameFromSourceName( "MySource", "MyMachine" );
      // Make sure the source is in the log we believe it to be in
      if (logName != "MyLog")
          return -1;
      // Delete the source and the log.
      EventLog::DeleteEventSource( "MySource", "MyMachine" );
      EventLog::Delete( logName, "MyMachine" );
      Console::WriteLine( "{0} deleted.", logName );
   }
   else
        {
            // Create the event source to make next try successful.
            EventSourceCreationData^ mySourceData = gcnew EventSourceCreationData("MySource", "MyLog");
            mySourceData->MachineName = "MyMachine";
            EventLog::CreateEventSource(mySourceData);
        }
}
using System;
using System.Diagnostics;
using System.Threading;

class MySample
{
    public static void Main()
    {
        string logName;

        if (EventLog.SourceExists("MySource", "MyMachine"))
        {
            // Find the log associated with this source.
            logName = EventLog.LogNameFromSourceName("MySource", "MyMachine");
            // Make sure the source is in the log we believe it to be in.
            if (logName != "MyLog")
                return;
            // Delete the source and the log.
            EventLog.DeleteEventSource("MySource", "MyMachine");
            EventLog.Delete(logName, "MyMachine");

            Console.WriteLine(logName + " deleted.");
        }
        else
        {
            // Create the event source to make next try successful.
            EventSourceCreationData mySourceData = new EventSourceCreationData("MySource", "MyLog");
            mySourceData.MachineName = "MyMachine";
            EventLog.CreateEventSource(mySourceData);
        }
    }
}
Option Explicit On
Option Strict On

Imports System.Diagnostics
Imports System.Threading

Class MySample
    Public Shared Sub Main()
        Dim logName As String

        If EventLog.SourceExists("MySource", "MyMachine") Then
            ' Find the log associated with this source.    
            logName = EventLog.LogNameFromSourceName("MySource", "MyMachine")
            ' Make sure the source is in the log we believe it to be in
            If (logName <> "MyLog") Then
                Return
            End If
            ' Delete the source and the log.
            EventLog.DeleteEventSource("MySource", "MyMachine")
            EventLog.Delete(logName, "MyMachine")

            Console.WriteLine((logName & " deleted."))
        Else
            ' Create the event source to make next try successful.
            Dim mySourceData As New EventSourceCreationData("MySource", "MyLog")
            mySourceData.MachineName = "MyMachine"
            EventLog.CreateEventSource(mySourceData)
        End If
    End Sub
End Class

注釈

削除するログがリモート コンピューターにある場合は、このメソッドを使用します。 適切なレジストリアクセス許可があれば、コンピューター上の任意のログを削除できます。

Deleteによって指定されたログを、 でlogNamemachineName指定されたコンピューターから削除します。 ログに登録されているソースのみを削除する場合は、 を呼び出します DeleteEventSource。 ログ エントリのみを削除する場合は、 を呼び出します ClearDeleteDeleteEventSourcestatic メソッドであるため、クラス自体で呼び出すことができます。 どちらのメソッドも呼び出すために の EventLog インスタンスを作成する必要はありません。

このメソッドは、ログの内容を保持するファイルを最初に削除します。 その後、レジストリにアクセスし、そのログに登録されているすべてのイベント ソースを削除します。 後でログを再作成する場合は、イベント ソースを再利用する場合は、再度登録する必要があります。 イベント ソースを登録せず、他のユーザーがログ名を指定せずにイベント ソースに書き込む場合、イベント ソースはアプリケーション イベント ログに作成されます。 そのため、以前に削除して再作成したログにエントリを書き込めたアプリケーションでは、代わりにアプリケーション ログに書き込まれます。これは、イベント ソースが含まれるようになったためです。

注意

イベント ログの再作成は、困難なプロセスになる可能性があります。 アプリケーション ログなど、システムによって作成されたイベント ログは削除しないでください。

を呼び出してログを Delete 削除すると、そのログに登録されているソースが自動的に削除されます。 これにより、そのログを使用する他のアプリケーションが動作不能になる可能性があります。

こちらもご覧ください

適用対象

Delete(String)

ソース:
EventLog.cs
ソース:
EventLog.cs
ソース:
EventLog.cs

ローカル コンピューターからイベント ログを削除します。

public:
 static void Delete(System::String ^ logName);
public static void Delete (string logName);
static member Delete : string -> unit
Public Shared Sub Delete (logName As String)

パラメーター

logName
String

削除するログの名前。 指定できる値は、アプリケーション、セキュリティ、システム、およびコンピューター上の任意のカスタム イベント ログです。

例外

logName が空の文字列 ("") または null

ローカル コンピューター上のイベント ログのレジストリ キーを開けませんでした。

- または -

ローカル コンピューター上にログが存在しません。

イベント ログが正常に消去されませんでした。

- または -

ログを開くことができません。 Windows のエラー コードは使用できません。

次の例では、ローカル コンピューターからログを削除します。 この例では、ソースからのログを決定します。

注意

複数のソースがイベント ログに書き込む場合があります。 カスタム ログを削除する前に、そのログに書き込む他のソースがないことを確認してください。

#using <System.dll>

using namespace System;
using namespace System::Diagnostics;
using namespace System::Threading;
int main()
{
   String^ logName;
   if ( EventLog::SourceExists( "MySource" ) )
   {
      
      // Find the log associated with this source.    
      logName = EventLog::LogNameFromSourceName( "MySource", "." );
      // Make sure the source is in the log we believe it to be in
      if (logName != "MyLog")
          return -1;
      // Delete the source and the log.
      EventLog::DeleteEventSource( "MySource" );
      EventLog::Delete( logName );
      Console::WriteLine( "{0} deleted.", logName );
   }
   else
        {
            // Create the event source to make next try successful.
            EventLog::CreateEventSource("MySource", "MyLog");
        }
}
using System;
using System.Diagnostics;
using System.Threading;

class MySample1
{
    public static void Main()
    {
        string logName;

        if (EventLog.SourceExists("MySource"))
        {
            // Find the log associated with this source.
            logName = EventLog.LogNameFromSourceName("MySource", ".");
            // Make sure the source is in the log we believe it to be in.
            if (logName != "MyLog")
                return;
            // Delete the source and the log.
            EventLog.DeleteEventSource("MySource");
            EventLog.Delete(logName);

            Console.WriteLine(logName + " deleted.");
        }
        else
        {
            // Create the event source to make next try successful.
            EventLog.CreateEventSource("MySource", "MyLog");
        }
    }
}
Option Explicit On
Option Strict On

Imports System.Diagnostics
Imports System.Threading

Class MySample
    Public Shared Sub Main()
        Dim logName As String

        If EventLog.SourceExists("MySource") Then
            ' Find the log associated with this source.    
            logName = EventLog.LogNameFromSourceName("MySource", ".")
            ' Make sure the source is in the log we believe it to be in
            If (logName <> "MyLog") Then
                Return
            End If
            ' Delete the source and the log.
            EventLog.DeleteEventSource("MySource")
            EventLog.Delete(logName)

            Console.WriteLine((logName & " deleted."))
        Else
            ' Create the event source to make next try successful.
            EventLog.CreateEventSource("MySource", "MyLog")
        End If
    End Sub
End Class

注釈

削除するログがローカル コンピューターにある場合は、このメソッドを使用します。 適切なレジストリアクセス許可があれば、コンピューター上の任意のログを削除できます。

Delete によって指定された logName ログがローカル コンピューターから削除されます。 ログに登録されているソースのみを削除する場合は、 を呼び出します DeleteEventSource。 ログ エントリのみを削除する場合は、 を呼び出します ClearDeleteDeleteEventSourcestatic メソッドであるため、クラス自体で呼び出すことができます。 どちらのメソッドも呼び出すために、 の EventLog 新しいインスタンスを作成する必要はありません。

メソッドは Delete まず、ログの内容を保持するファイルを削除します。 その後、レジストリにアクセスし、そのログに登録されているすべてのイベント ソースを削除します。 後でログを再作成する場合は、イベント ソースを再利用する場合は、再度登録する必要があります。 イベント ソースを登録せず、他のユーザーがログ名を指定せずにイベント ソースに書き込む場合、イベント ソースはアプリケーション イベント ログに作成されます。 そのため、以前に削除して再作成したログにエントリを書き込めたアプリケーションでは、代わりにアプリケーション ログに書き込まれます。これは、イベント ソースが含まれるようになったためです。

注意

イベント ログの再作成は、困難なプロセスになる可能性があります。 アプリケーション ログなど、システムによって作成されたイベント ログは削除しないでください。

を呼び出してログを Delete 削除すると、そのログに登録されているソースが自動的に削除されます。 これにより、そのログを使用する他のアプリケーションが動作不能になる可能性があります。

こちらもご覧ください

適用対象