Связать несколько событий NLog с одним запросом ASP.NET - PullRequest
1 голос
/ 16 декабря 2010

Я бы хотел использовать систему регистрации для отслеживания большого веб-приложения. Пока что я остановился на NLog, потому что он прост в настройке и API.

Когда трассировка включена, я ожидаю увидеть много журналов для разных пользователей. Есть ли способ связать отдельные строки журнала с одним запросом?

Ответы [ 2 ]

1 голос
/ 20 декабря 2010

Нашел ответ после того, как спросил его.

Каждый запрос обрабатывается новым потоком в ASP.NET, следовательно, хитрость заключается в маркировке текущего потока уникальным именем:

HttpRequest request = HttpContext.Current.Request;
Thread.CurrentThread.Name = Guid.NewGuid().ToString() + request.UserHostAddress;

Эта информация может быть прочитана NLog как ${threadname}

0 голосов
/ 16 декабря 2010

Есть несколько LayoutRenderers, которые будут выводить информацию ASP (я не разработал для ASP.NET, поэтому я не могу сказать, какой (если таковой имеется) даст вам то, что вам нужно).См. Эту ссылку для получения списка LayoutRenderers:

http://nlog -project.org / wiki / Layout_renderers

На форуме NLog (на том же сайте) я могуобратите внимание, что у некоторых людей возникла проблема с получением ASP.NET LayoutRenders для вывода чего-либо (по крайней мере, в NLog 2.0).До сих пор рекомендуемое решение (это должно быть исправлено на этапе бета-тестирования) заключается в добавлении этого в файл NLog.config:

<extensions>
  <add assembly="NLog.Extended" />
</extensions>

Убедитесь, что NLog.Extended.dll находится в том же каталоге, что и NLog.dll

Я не могу опубликовать ссылку на конкретное сообщение на форуме, потому что этот форум не содержит ссылок на отдельные сообщения, но это было в ответ на вопрос, заданный 28 октября 2010 года. Названиевопрос: «Проблема с NLOG и ASP.NET».

...