Я пытаюсь настроить базовую регистрацию в журнале событий Windows в .net через System.Diagnostics.EventLog
, но мне не удается увидеть какие-либо события, записываемые в журнал. Рассмотрим следующий код:
// Elsewhere in the class
private static readonly string EventLogName = "LogName";
private static readonly string EventLogSource = "AppName";
// In the only function that does something
if (!EventLog.Exists(EventLogName))
{
EventLog.CreateEventSource(EventLogSource, EventLogName);
return;
}
else
{
Trace.TraceInformation("Attempting log");
// This doesn't write anything
EventLog.WriteEntry(EventLogSource,
"StaticWriteEntry",
EventLogEntryType.Error);
// Neither does this
using (var log = new EventLog())
{
log.Log = EventLogName;
log.Source = EventLogSource;
log.WriteEntry("WriteEntry?", EventLogEntryType.Error);
}
}
return;
Первый раз, когда я создаю журнал и выхожу из приложения, по образцу MSDN. Это создание журнала в конечном итоге перейдет в настройку, конечно. Последующие запуски пытаются записать сообщение в созданный журнал событий.
Нет исключений. Журнал, кажется, успешно создан (я могу открыть его в средстве просмотра событий Windows). В журнал безопасности ничего не заносится.
Сообщения не регистрируются через WriteEntry()
. Они также не помещаются в журнал приложений из-за несоответствия имени. В данном конкретном случае я работаю на Server2008 в учетной записи администратора с отключенным UAC. (Это небольшой кусок более крупного унаследованного продукта, для которого требуется неблагоприятная среда.) Что я делаю не так?
(Я делаю это, потому что я хочу использовать EventLogTraceListener
в моем app.config, и он ничего не писал, так что это часть устранения этой проблемы.)