Архив рубрики: Software

C#: Создать запись в Журнале событий из нескольких строк

Мне понадобилось добавить в системный журнал событий запись (событие), содержащую несколько строк. Проблема в том, что здесь не работают переносы строк вида ‘\n’ или System.Environment.NewLine.
Решения с созданием отдельных ячеек типа <Data>Entry1</Data> также не работали, т.к. в Журнале отображалась только первая строчка, а остальные не были видны.

Решение

В PowerShell есть конструкции типа Here-String, но у нас C#, тут немного по другому (здесь используется @ как verbatim-идентификатор), зато это сработает!

MultiStringEvent.cs
    EventInstance eventInstance = new EventInstance(eventID, categoryId, type);
    string multiStr = @"Line 1
Line 2
Line 3
Line 4
Line 5
Line 6 and so on...";
    try
    {
        EventLog.WriteEvent(ApplicationName, eventInstance, multiStr);
    }
    catch (Exception error)
    {
        DebugLog(error.ToString());
    }

Результат:
Текст события на несколько строчек