답변
(SharePoint 2007?) 중앙 관리에서 운영 -> 진단 로깅으로 이동하십시오. "추적 로그"및 "이벤트 제한"이 원하는 것입니다.
"이벤트 조절"에서 범주를 선택하고 이벤트 및 추적 로그 모두에 대해 최악의 오류를 선택하십시오. 그런 다음 추적 로그의 경로를 선택하고 (기본적으로 ..12 \ LOGS) 최대 로그 수와 각 로그 파일을 사용할 시간 (분)을 제공하십시오.
나는 당신을 도울 일부 블로그 게시물을 썼다. 내가 제안하는 것은 BCL 로깅 클래스 (System.Diagnostics)를 사용하고 SharePoint ULS 로그에 기록하는 사용자 지정 TraceListner를 만드는 것입니다.
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에서 Daniel이 설명한 것과 같은 접근 방법을 사용하여 예외를 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에 배포해야합니다.
이 사용자 정의 오류 http 모듈에 대한 web.config 섹션의 항목이 목록에서 첫 번째 여야합니다. http 모듈이 문제의 섹션에 나열된 순서와 사용자 정의 오류 http 모듈이 항상 먼저 실행되어야합니다.
개봉 된이 MOSS를 사용하는 경우, 당신은이를 사용할 수 있습니다
Microsoft.Office.Server.Diagnostics.PortalLog.LogString("Message");
은 Microsoft 설명서에 따라 점을 명심 - LogString는 내부 용으로 예약되어 있으며 사용자 코드에서 직접 사용할 수 없습니다.
내가 Web.config의 아무것도를 추가해야 할 - 자세한 내용은
은이 링크를 참조? 나는 Trace.WriteLine ("comment")과 같은 것을 말할 수 있기를 원한다. – raklos아! 코드에서 로그에 * 쓰기를 원하십니까? 다음은 msdn 예제입니다. http://msdn.microsoft.com/en-us/library/aa979522.aspx – vinny