логирование / трассировка sharepoint - PullRequest
2 голосов
/ 29 мая 2009

как я могу выполнить вход в sharepoint. я хочу использовать трассировку.

, чтобы он регистрировался в 12 логах улья.

Ответы [ 5 ]

3 голосов
/ 31 мая 2009

Microsoft приводит пример:

http://msdn.microsoft.com/en-us/library/aa979522.aspx

Этот пример записывает в журнал ULS, используя собственные методы трассировки, поэтому в коде используется немного pInvoke.

Затем вы можете контролировать тип события регистрации в вашем коде, например:

TraceProvider.WriteTrace(0, TraceProvider.TraceSeverity.High, Guid.Empty, "MyExeName", "Product Name", "Category Name", "Sample Message");

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

2 голосов
/ 31 мая 2009

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

В вашем HttpModule вы можете использовать подход, подобный описанному Дэниелом, для записи исключений в журналы ULS.

Вот простой пример этого:

Создайте класс, который реализует IHttpModule, и подключите соответствующее событие в конвейере Http:

public void Init(HttpApplication context)
{
    context.Error += new EventHandler(context_Error);
}

В событии context_Error просмотрите все ошибки и зарегистрируйте их ...

void context_Error(object sender, EventArgs e)
{
    TraceProvider.RegisterTraceProvider();

    foreach (var ex in HttpContext.Current.AllErrors)
    {

        TraceProvider.WriteTrace(0,
            TraceProvider.TraceSeverity.Exception,
            Guid.NewGuid(),
            Assembly.GetExecutingAssembly().FullName,
            "<your application name>",
            "<exception category>",
            ex.ToString());
    }

    TraceProvider.UnregisterTraceProvider();

    HttpContext.Current.Server.ClearError();
    HttpContext.Current.Response.Clear();
    HttpContext.Current.Server.Transfer("/_layouts/Error500.aspx");
}

Вы, конечно, должны объединить все это в функцию (определенную на уровне веб-приложений) и развернуть ее в SharePoint.

Обратите внимание, что ваша запись в разделе web.config для этой пользовательской ошибки http-модуля должна быть первой в списке. Порядок, в котором перечислены http-модули в разделе, имеет значение, и модуль http с пользовательской ошибкой всегда должен выполняться первым.

1 голос
/ 29 мая 2009

(SharePoint 2007?) В Central Admin перейдите в раздел «Операции»> «Ведение журнала диагностики», «Журнал трассировки» и «Регулирование событий» - вот что вам нужно.

Выберите категорию в «Регулировании событий» и выберите наименее критичные ошибки для журналов событий и трассировки. Затем выберите путь для журналов трассировки (по умолчанию у меня было .. 12 \ LOGS) и укажите максимальное количество журналов и количество минут для использования каждого файла журнала.

0 голосов
/ 31 мая 2009

Если вы используете MOSS, вы можете использовать это:

Microsoft.Office.Server.Diagnostics.PortalLog.LogString("Message");

Имейте в виду, что согласно документации Microsoft - LogString зарезервирован для внутреннего использования и не предназначен для использования непосредственно из вашего кода.

Подробнее см. По этой ссылке -

https://msdn.microsoft.com/en-us/library/office/microsoft.office.server.diagnostics.portallog_members.aspx

0 голосов
/ 30 мая 2009

Я написал несколько постов в блоге, которые помогут вам. Я предлагаю использовать классы ведения журналов BCL (System.Diagnostics) и создать собственный TraceListner, который записывает в журналы ULS SharePoint.

http://sharepoint.nailhead.net/2008/04/instrumentation-logging-for-sharepoint.html

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