Как выполнить регистрацию в sharepoint. Я хочу использовать трассировку.sharepoint logging/trace
так, чтобы он регистрировался в 12 журналах с улей.
Как выполнить регистрацию в sharepoint. Я хочу использовать трассировку.sharepoint logging/trace
так, чтобы он регистрировался в 12 журналах с улей.
(SharePoint 2007?) Из центра администрирования перейдите к Operations-> Diagnostic Logging, «Trace Log» и «Event Throttling» - это то, что вы ищете.
Выберите категорию в разделе «Блокировка событий» и выберите наименее критические ошибки для журналов событий и трассировки. Затем выберите путь для журналов трассировки (мой был по умолчанию установлен на .12 \ LOGS) и укажите максимальное количество журналов и количество минут для использования каждого файла журнала.
Я написал несколько сообщений в блогах, которые помогут вам. Я предлагаю использовать классы ведения журнала BCL (System.Diagnostics) и создавать пользовательский TraceListner, который записывает в журналы SharePoint ULS.
http://sharepoint.nailhead.net/2008/04/instrumentation-logging-for-sharepoint.html
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");
События дросселирования настройки в центре администратора по-прежнему будет честь с этим подходом.
Мой предпочтительный подход заключается в написании пользовательского 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-ошибок должен всегда выполняться первым.
Если you're с помощью мха, вы можете использовать это:
Microsoft.Office.Server.Diagnostics.PortalLog.LogString("Message");
Имейте в виду, что в соответствии с документацией Microsoft - LogString зарезервирован для внутреннего использования и не предназначен для использования непосредственно из вашего кода.
Для получения более подробной информации обратитесь по этой ссылке -
мне нужно сделать, чтобы добавить что-нибудь в web.config? Я просто хочу сказать что-то вроде Trace.WriteLine («комментарий»); – raklos
Ах! Вы хотите * писать * в журналы из своего кода? Вот пример msdn: http://msdn.microsoft.com/en-us/library/aa979522.aspx – vinny