2010-02-23 7 views
3

J'utilise le journal des événements de l'application pour écrire des messages sur l'activité qui se passe dans mon programme. J'ai mis la source au nom de mon application. Je voudrais offrir à l'utilisateur la possibilité d'effacer uniquement les événements liés à mon programme. Est-ce possible? Je vois seulement un moyen d'effacer tout le journal. J'utilise C# dans .NET 2.0.Comment puis-je supprimer tous les événements du journal des événements d'application pour une seule source?

+1

Avez-vous déjà trouvé une réponse différente? – Moose

Répondre

1

Il n'est pas possible de supprimer des événements spécifiques d'un journal des événements. C'est clair tous les événements ou rien.

1

Ceci est une partie du code de la bibliothèque MSDN voir si c'est ce que vous cherchez.

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"); 
    } 

aussi ce qui a fonctionné pour moi créais une source d'événement pour mon application à l'aide

if (!EventLog.SourceExists(source)) 
     { 
      EventLog.CreateEventSource(source, additional); 
     } 

et vous connecter tous les détails y en utilisant

EventLog.WriteEntry(Source, error, EventLogEntryType.Error); 

et puis quand je veux effacer mes journaux j'utilise

EventLog myEventLog = new EventLog(Constants.EventSource); 
myEventLog.Clear(); 

Cela effacera uniquement les journaux que vous avez enregistrés sous votre source. J'espère que ça aide :)

Questions connexes