다음을 통해 공유


EventLog.Delete 메서드

정의

로그 리소스를 제거합니다.

오버로드

Delete(String, String)

지정한 컴퓨터에서 이벤트 로그를 제거합니다.

Delete(String)

로컬 컴퓨터에서 이벤트 로그를 제거합니다.

Delete(String, String)

Source:
EventLog.cs
Source:
EventLog.cs
Source:
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 에서 지정한 logName 로그를 에서 지정한 machineName컴퓨터에서 제거합니다. 로그에 등록된 원본만 삭제하려면 를 호출합니다 DeleteEventSource. 로그 항목만 삭제하려면 를 호출 Clear합니다. DeleteDeleteEventSourcestatic 메서드이므로 클래스 자체에서 호출할 수 있습니다. 두 메서드 중 하나를 호출하기 위해 의 EventLog instance 만들 필요는 없습니다.

이 메서드는 먼저 로그의 내용을 포함하는 파일을 삭제합니다. 그런 다음 레지스트리에 액세스하고 해당 로그에 등록된 모든 이벤트 원본을 제거합니다. 나중에 로그를 다시 만드는 경우 이벤트 원본을 다시 사용할 경우 다시 등록해야 합니다. 이벤트 원본을 등록 하지 않은 경우 로그 이름을 지정 하지 않고 이벤트 소스에 작성 하는 다른 사용자에 게 애플리케이션 이벤트 로그에 이벤트 소스가 만들어집니다. 따라서 삭제 하 고 다시 로그에 엔트리를 쓸 수 있었던 애플리케이션 작성 애플리케이션 로그 대신 이제 이벤트 소스를 포함 하기 때문에 합니다.

참고

이벤트 로그를 다시 만드는 것은 어려운 과정일 수 있습니다. 애플리케이션 로그와 같은 시스템 생성 이벤트 로그를 삭제 하지 마십시오.

호출을 통해 로그를 삭제하면 Delete 해당 로그에 등록된 원본이 자동으로 삭제됩니다. 이 작동 하지 않는 해당 로그를 사용 하 여 다른 애플리케이션을 만들 수 있습니다.

추가 정보

적용 대상

Delete(String)

Source:
EventLog.cs
Source:
EventLog.cs
Source:
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. 로그 항목만 삭제하려면 를 호출 Clear합니다. DeleteDeleteEventSourcestatic 메서드이므로 클래스 자체에서 호출할 수 있습니다. 두 메서드 중 하나를 호출하기 위해 의 EventLog 새 instance 만들 필요는 없습니다.

메서드는 Delete 먼저 로그의 내용을 포함하는 파일을 삭제합니다. 그런 다음 레지스트리에 액세스하고 해당 로그에 등록된 모든 이벤트 원본을 제거합니다. 나중에 로그를 다시 만드는 경우 이벤트 원본을 다시 사용할 경우 다시 등록해야 합니다. 이벤트 원본을 등록 하지 않은 경우 로그 이름을 지정 하지 않고 이벤트 소스에 작성 하는 다른 사용자에 게 애플리케이션 이벤트 로그에 이벤트 소스가 만들어집니다. 따라서 삭제 하 고 다시 로그에 엔트리를 쓸 수 있었던 애플리케이션 작성 애플리케이션 로그 대신 이제 이벤트 소스를 포함 하기 때문에 합니다.

참고

이벤트 로그를 다시 만드는 것은 어려운 과정일 수 있습니다. 애플리케이션 로그와 같은 시스템 생성 이벤트 로그를 삭제 하지 마십시오.

호출을 통해 로그를 삭제하면 Delete 해당 로그에 등록된 원본이 자동으로 삭제됩니다. 이 작동 하지 않는 해당 로그를 사용 하 여 다른 애플리케이션을 만들 수 있습니다.

추가 정보

적용 대상