TextWriterTraceListener и трассировка имен файлов с идентификаторами GUID - PullRequest
15 голосов
/ 26 февраля 2010

Я использую TextWriterTraceListener ( System.Diagnostics ) в моем приложении, чтобы отследить несколько вещей, таких как исключения, ...

Приложение работает на сервере терминалов, и если одновременно используется много пользователей, слушатель начинает создавать множество файлов трассировки со случайными GUID в имени файла.

Существуют ли возможности или обходные пути, позволяющие избежать такого поведения?

1 Ответ

13 голосов
/ 26 февраля 2010

Я только что посмотрел документацию для TextWriterTraceListener , и есть заметка о 1/3 пути вниз по странице

Если предпринята попытка записи в файл, который используется или недоступен, перед именем файла автоматически указывается GUID

Так что, похоже, это было задумано. Если файл действительно недоступен, то с текущей реализацией ничего не поделаешь. То, что вы можете попробовать сделать, - это написать собственную реализацию TextWriterTraceListener, которая переопределяет соответствующие методы Write / WriteLine, так что вывод идет в файл для каждого пользователя с именем, которое лучше соответствует вашим потребностям.

Если вы хотите, чтобы ВСЕ журналы от ВСЕХ пользователей на Сервере терминалов переходили к одному файлу, то вам почти наверняка понадобится запустить какой-то «сторонний» процесс, который «владеет» файлом и синхронизирует запись в него, например, службу Windows, которая затем вызывается вашим пользовательским TextWriterTraceListener

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...