Как написать окно журнала событий по заказу - PullRequest
1 голос
/ 07 января 2020

Я пытаюсь записать какое-то сообщение в windows журнал событий:

static void Main(string[] args)
{
    for(int i=0; i< 10; i++)
    {
        WriteSystemEventLog(i.ToString());
    }
    Console.ReadKey();
}

public static void WriteSystemEventLog(string msg, EventLogEntryType type = EventLogEntryType.Error)
{
    EventLog myLog = null;
    try
    {
        myLog = new EventLog();
        myLog.Source = "My application";
        myLog.WriteEntry(msg, type);
    }
    catch (Exception e)
    {
        Console.WriteLine("Error occured during write system event log, error message: " + e.Message);
    }
    if (myLog != null)
    {
        myLog.Dispose();
        myLog = null;
    }
}

Открыть журнал событий, отсортировать по дате, ожидается: 0 1 2 3 ...

Факт: 2 3 1 9 0 ...

Добавление 1 секунды сна может решить эту проблему, но есть ли другой способ?

1 Ответ

3 голосов
/ 07 января 2020

К сожалению, события в журнале системных событий упорядочиваются с точностью до одной секунды, потому что они используют UNIX timestamp - число целых секунд с начала 1970 года. Это системное ограничение, которое вы не можете сделать много о.

...