2009-05-29 1 views
2

Как выполнить регистрацию в sharepoint. Я хочу использовать трассировку.sharepoint logging/trace

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

ответ

1

(SharePoint 2007?) Из центра администрирования перейдите к Operations-> Diagnostic Logging, «Trace Log» и «Event Throttling» - это то, что вы ищете.

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

+0

мне нужно сделать, чтобы добавить что-нибудь в web.config? Я просто хочу сказать что-то вроде Trace.WriteLine («комментарий»); – raklos

+0

Ах! Вы хотите * писать * в журналы из своего кода? Вот пример msdn: http://msdn.microsoft.com/en-us/library/aa979522.aspx – vinny

3

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

Мой предпочтительный подход заключается в написании пользовательского 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-ошибок должен всегда выполняться первым.

0

Если you're с помощью мха, вы можете использовать это:

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

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

Для получения более подробной информации обратитесь по этой ссылке -

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

Смежные вопросы