共享点记录/跟踪
(SharePoint 2007?)从中央管理,转到操作 - >诊断日志记录,“跟踪日志”和“事件限制”是你要找的。
在“事件限制”中选择一个类别,并为事件和跟踪日志选择最少严重错误。然后,选择跟踪日志的路径(我的默认值为.12 \ LOGS),并提供最大日志数和使用每个日志文件的分钟数。
我写了一些博客文章,可以帮助你。我建议使用BCL日志记录类(System.Diagnostics)并创建写入SharePoint ULS日志的自定义TraceListner。
http://sharepoint.nailhead.net/2008/04/instrumentation-logging-for-sharepoint.html
微软提供了一个例子:
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");
}
当然,你必须全部包裹起来这为功能(在Web应用程序级别范围的),并将其部署到SharePoint。
请注意,对于此自定义错误http模块的web.config部分中的条目需要在列表中处于第一位。该章节中列出http模块的顺序很重要,自定义错误http模块应始终首先执行。
如果you're使用MOSS,您可以使用此:
Microsoft.Office.Server.Diagnostics.PortalLog.LogString("Message");
,根据微软的文档请记住 - LogString保留供内部使用,不适合直接在代码中使用。
欲了解更多详情,请参阅此链接 -
我是否需要在web.config中添加任何东西? 我只想说些像Trace.WriteLine(“comment”); – raklos 2009-05-29 13:42:12