Gdy używam poniższy kod, żeby napisać do dziennika zdarzeń aplikacji, wszystko działa prawidłowo:Zapisywanie do dziennika zdarzeń w języku C# - czy muszę używać EventLog.CreateEventSource podczas zapisywania w dzienniku aplikacji?
EventLog log = new EventLog();
log.Source = "Application";
log.WriteEntry("test message", EventLogEntryType.Error);
Kiedy korzystać z kodu, który jest z MSDN i wszystkich innych blogów, pojawia się błąd zabezpieczeń (zgaduję, bo CreateEventSource to podnosi).
string sSource = "MyWebService";
string sLog = "myApplication";
string sMsg = errorMessage;
if (!EventLog.SourceExists(sSource))
EventLog.CreateEventSource(sSource, sLog);
EventLog.WriteEntry(sSource, sMsg, EventLogEntryType.Error);
Czy muszę sprawdzić, czy źródło istnieje, jeśli wszystko, czego potrzebuję, to zapisanie do dziennika aplikacji domyślnie?
Jaki jest właściwy sposób zapisu do EventViewer?
świetnie, dziękuję! Właśnie potrzebowałem potwierdzić. Nie muszę tworzyć osobnego źródła/dziennika. Właściwie chcę napisać do dziennika aplikacji. – sarsnake
jeszcze jedno pytanie: kiedy piszę do ogólnego źródła aplikacji, pojawia się następujący komunikat podczas przeglądania go w przeglądarce zdarzeń: "Opis zdarzenia (0) to Źródło (aplikacja) nie może zostać znaleziony. posiadać niezbędne informacje rejestru lub pliki DLL wiadomości, aby wyświetlać wiadomości ze zdalnego komputera ".... wtedy wyświetlany jest mój niestandardowy komunikat. Zastanawiałem się, czy nie można wyświetlić tego długiego domyślnego komunikatu bez ustawiania źródła. – sarsnake
To dlatego, że twój komputer monitorujący nie ma odniesień do komunikatów błędów, wyeksportuj dziennik zdarzeń komputera zdalnego do pliku CSV na podstawie tekstów, a otrzymasz wszystkie informacje ze zdalnego komputera (włączając błędy wszystkich aplikacji zainstalowanych przez inne osoby). – user3800527