我最初使用PHP(LAMP),现在我已经开始研究Sharepoint了。在PHP的情况下,所有错误都被捕获并显示在Apache错误日志中,如果是Sharepoint,我必须使用Try和Catch块,然后使用下面显示的代码来捕获错误。这对我来说很好。没问题。但缺点是 - 我必须保持警惕,以确保我把Try Catch放在每个可能的地方。
我想要像PHP这样的东西,即自动记录。请帮忙。
Microsoft.SharePoint.SPSecurity.RunWithElevatedPrivileges(delegate()
{
SPDiagnosticsService diagSvc = SPDiagnosticsService.Local;
SPDiagnosticsCategory cat = diagSvc.Areas["SharePoint Foundation"].Categories["Unknown"];
string format = "Test trace logging gggg for category {0} in area {1}";
diagSvc.WriteTrace(1, cat, TraceSeverity.Medium, format, cat.Name, cat.Area.Name);
});
答案 0 :(得分:0)
我担心你会自己处理这些错误。 Sharepoint实现自己的日志,但仅适用于它想要处理的事情。您必须实现扩展错误或自定义错误日志记录。
在我的例子中,我通常使用基类来处理我的webparts,布局和类,并在一个地方编写错误处理代码。继承此base classess的任何类元素都会自动处理错误。
无论如何,您可以实现自定义服务并将错误记录到ULS或为您的公共元素创建类似的基类。看看这篇可能对你有帮助的文章。 http://blog.mastykarz.nl/logging-uls-sharepoint-2010/
答案 1 :(得分:0)
SharePoint中的每个未处理的异常都会自动记录到ULS,并显示为 Unexpected 级别的消息。如果您对此没有问题,则不需要实施任何日志记录。同时避免捕获您无法按照建议here处理的异常。
答案 2 :(得分:0)
如果不处理,ASP.NET中的所有异常都会冒出调用堆栈,最终您可以实现一个处理错误的模块。你可以在这里看到一个例子:
http://www.codeproject.com/Articles/16171/An-HTTP-Module-for-ASP-NET-Error-Handling
你如何部署它?您可以使用服务器场解决方案部署它,并使用spwebconfigmodification类将其添加到Web配置