Журнал событий Windows не может превышать 32766 символов

#asp.net #event-log

#asp.net #журнал событий

Вопрос:

когда я записываю журнал в журнал событий Windows:

 System.Diagnostics.EventLog.WriteEntry("SourceName", a_long_string);
  

я получил следующее исключение:

Строка записи журнала слишком длинная. Строка, записанная в журнал событий, не может превышать 32766 символов.

затем я разделяю свое сообщение журнала на 2 или более строк. но я не думаю, что это хорошая идея. какие-либо обходные пути? (например, extern ограничение на запись в журнале)

Комментарии:

1. Я бы поставил под сомнение удобство использования системы, которая требует записи записей такой длины в журнал событий.

2. Чтобы еще больше запутать ситуацию, в статье msdn об api регистрации событий утверждается, что на компьютерах после Vista ограничение фактически 31839 является, таким образом, проверка 32766 .net и соответствие ArgumentException неверны.

Ответ №1:

Журнал событий не предназначен для хранения главы 1 «Войны и мира». Вам действительно следует пересмотреть то, что вы записываете в журнал событий.

Если вы хотите записать что-то объемное (например, аварийный дамп), вы всегда можете сохранить его где-нибудь на диске и написать сообщение в журнал событий примерно так Generated dump at C:UsersMyUserNameAppDataLocalMyAppWarAndPeace.pdf .

Комментарии:

1. Возможно, я в меньшинстве, но мне не нравится компонент диагностики, используемый для записи ошибок, эффективно маскирующий фактическую причину регистрации потенциальной ошибки. Если Война и мир невозможны, тогда сократите сообщение с указанием изменения сообщения. Я не согласен с тем, что сообщения должны быть ограничены и / или регистрироваться с использованием другого носителя. Это исключение заставляет всех, кто когда-либо записывал трассировку в вашем приложении, включая сторонние, ограничивать строку, используя прослушиватель журнала событий по умолчанию. Ошибка?