Корпоративная библиотека 3.1 Шаблон форматирования ведения журнала - включает запрос URL - PullRequest
2 голосов
/ 09 февраля 2011

У нас есть пользовательское веб-приложение, созданное с использованием Ektron v8.0, в котором используется EL 3.1, а шаблон формата в конфигурации регистрации настроен следующим образом:

<add
      name="Text Formatter"
      type="Microsoft.Practices.EnterpriseLibrary.Logging.Formatters.TextFormatter, Microsoft.Practices.EnterpriseLibrary.Logging"
      template="Timestamp: {timestamp}
Message: {message}
Category: {category}
Priority: {priority}
EventId: {eventid}
Severity: {severity}
Title:{title}
Extended Properties: {dictionary({key} - {value}
)}"
                />

Есть ли шаблон элемента для URL запроса? Без URL-адреса запроса с параметрами строки запроса трудно отлаживать ошибки.

1 Ответ

1 голос
/ 09 февраля 2011

Нет элемента шаблона специально для URL запроса. Вы можете добавить URL-адрес запроса в расширенные свойства, чтобы информация регистрировалась:

string requestUrl = System.Web.HttpContext.Current.Request.Url.AbsoluteUri;

Dictionary<string, object> dictionary = new Dictionary<string, object>();
dictionary.Add("RequestUrl", requestUrl);

Logger.Write("My message", dictionary);

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

Альтернативным подходом может быть создание собственного IExtraInformationProvider для заполнения конкретной веб-информации, которая вас интересует. Это действительно то же самое, за исключением использования интерфейса Enterprise Library.

public class WebContextInformationProvider : IExtraInformationProvider
{
    public void PopulateDictionary(IDictionary<string, object> dict)
    {
        dict["RequestUrl"] = System.Web.HttpContext.Current.Request.Url.AbsoluteUri;
    }
}

Dictionary<string, object> dictionary = new Dictionary<string, object>();
WebContextInformationProvider webContext = new WebContextInformationProvider();

webContext.PopulateDictionary(dictionary);

Logger.Write("My message", dictionary);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...