系统记录Sharepoint错误日志

系统记录Sharepoint错误日志,sharepoint,sharepoint-2010,Sharepoint,Sharepoint 2010,我最初使用PHP(LAMP),现在开始使用Sharepoint。对于PHP,所有错误都被捕获并显示在Apache错误日志中。对于Sharepoint,我必须使用Try-and-Catch块,然后使用下面显示的代码捕获错误。这对我来说很好。没问题。但不利的一面是——我必须保持足够的警惕,确保我在每一个可能的地方都尝试捕捉 我想要类似PHP的东西,即自动记录东西。请帮忙 Microsoft.SharePoint.SPSecurity.RunWithElevatedPrivileges(deleg

我最初使用PHP(LAMP),现在开始使用Sharepoint。对于PHP,所有错误都被捕获并显示在Apache错误日志中。对于Sharepoint,我必须使用Try-and-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);       
                });

恐怕你得自己处理这些错误。Sharepoint实现了自己的日志,但只用于它想要处理的事情。扩展错误或自定义错误日志必须由您实现

在我的例子中,我通常为我的Web部件、布局和类使用基类,并在一个地方编写错误处理代码。继承此基类的任何类元素都会自动处理错误


无论如何,您可以实现一个定制服务并将错误记录到ULS,或者为您的公共元素创建类似的基类。看看这篇文章,它可能会帮助你

SharePoint中每一个未处理的异常都会以消息的形式自动记录到ULS中,并具有意外级别。如果您不介意的话,就不需要实现任何日志记录。还应避免捕获无法按建议处理的异常。

ASP.NET中的所有异常都会在调用堆栈中冒泡。如果未处理,最终您可以实现一个处理错误的模块。您可以在此处看到一个示例:

如何部署它?您可以使用场解决方案部署它,并使用spwebconfigmodification类将其添加到web配置