2011-04-06 20 views
12

Windows hizmetim olay günlüğüne yazıyor, ancak bu sorunu düzeltmek için çeşitli sorunlar yaşadım. Yani süreçte çok sayıda farklı isim kullandım. Windows servislerinde olay günlüklerinin nasıl ayarlanacağını açıklayan bir yazı takip ettim. Yani tasarımcı bir EventLog bileşeni ekledikten sonra, ben kurucusuna bu eklemiş:Kayıtlı tüm olay kaynaklarını listeleyebilir miyim?

if (!System.Diagnostics.EventLog.SourceExists("AS0604")) 
    System.Diagnostics.EventLog.CreateEventSource("AS0604", "SIRR"); 

eventLog1.Source = "AS0604"; 
eventLog1.Log = "SIRR"; 
eventLog1.WriteEntry("AS is initializing...", EventLogEntryType.Information, 16); 

Ben kaynak pencere hizmetin hizmet adı ile aynı ada sahip olmadığını sorun olduğunu öğrendim. Ama hem Log hem de Kaynak için isimleri çok değiştirmeye devam ettim.

EventLog[] eventLogs = EventLog.GetEventLogs(); 

Listeler eventlogs ve ben EventLog.Delete komutuyla kullanmak vermedi olanlar kaldırmak başardı.

Ancak bu nasıl çalışır? Bu silinmiş günlüklerde hala kayıtlı kaynaklar var mı? Kayıtlı kaynakların bir listesini alabilir miyim?

cevap

7

Onunla iyi bir şekilde oynamaktan, cevabınız bu API'dan bir kaynak listesi alamıyor gibi görünüyor. Günlüğü silmek, kayıtlı olduğu yerleri siler.

Bu sayfa, bu kullanarak doğrudan kayıt defteri erişimi nasıl anlatır:

http://codeidol.com/csharp/csharpckbk2/Diagnostics/Finding-All-Sources-Belonging-to-a-Specific-Event-Log/

+0

Bu cevaptır yalnızca bağlantıdır. Lütfen gerekli bilgileri içerecek şekilde cevabı düzenleyin; Bağlantı bir noktada öldürebilir. (Nişan almamaya dikkat edin.) – jpmc26

İlgili konular