Business Connectivity Services 中的诊断日志记录概述 (SharePoint Server 2010)

 

适用于: SharePoint Server 2010

上一次修改主题: 2016-11-30

通过使用客户端或服务器上的事件日志和跟踪日志,可以解决与运行 Microsoft SharePoint Server 2010 的服务器上和 Microsoft Office 2010 客户端应用程序上的 Microsoft Business Connectivity Services 相关的问题。此外,事件日志或跟踪日志的每个条目都有一个关联的活动 ID,此活动 ID 可用于跟踪从客户端或服务器到外部数据源的问题。

备注

除本主题中讨论的日志记录方法之外,还可以使用 Microsoft System Center Operations Manager 管理包监视基于 Microsoft Business Connectivity Services 的解决方案。有关如何配置 System Center Operations Manager 管理包的详细信息,请参阅从 Microsoft SharePoint 2010 产品管理包 (https://go.microsoft.com/fwlink/?linkid=184971&clcid=0x804) 下载的管理包附带的指南。

本文内容:

  • Business Connectivity Services 中的诊断日志记录

  • 关于活动 ID

  • 服务器上的诊断日志记录

  • Office 2010 客户端上的诊断日志记录

  • 示例:使用诊断日志记录

Business Connectivity Services 中的诊断日志记录

对于基于 Microsoft Business Connectivity Services 的解决方案,可以在运行 SharePoint Server 2010 的服务器上和 Office 2010 客户端上进行诊断日志记录。有两类日志:事件日志和跟踪日志。二者都记录 Microsoft Business Connectivity Services 所生成的诊断信息。事件日志记录错误消息。跟踪日志包含更详细的信息,例如堆栈跟踪和信息性消息。通常,跟踪日志提供的详细信息比事件日志提供更多详细信息。

每个记录的信息项都包含一个活动 ID,此活动 ID 是一个唯一的 GUID 值。在对某个项执行创建、更新或删除操作时,还可以将活动 ID 值发送到外部系统。利用活动 ID,可跟踪从服务器或客户端到外部数据源的某个操作。有关活动 ID 的详细信息,请参阅关于活动 ID。

可以为事件日志和跟踪日志设置诊断日志记录级别。这将限制写入每个日志的信息的类型和数量。下表定义了可用于事件日志和跟踪日志的日志记录级别:

事件日志级别

级别 定义

未进行日志记录。

严重

此消息类型指示一个严重错误,该错误已导致解决方案中出现严重故障。

错误

此消息类型指示一种紧急情况。应调查所有错误事件。

警告

此消息类型指示一个可能要注意的潜在问题。应不断地检查和跟踪警告消息以找出其中的模式。

信息

信息性消息不需要任何操作,它们可提供用于监视解决方案状态的有价值的数据。

详细

此事件日志级别与长事件或消息对应。

跟踪日志级别

级别 定义

未写入跟踪日志。

意外

此级别用于记录有关导致解决方案停止处理的事件的消息。如果设置在此级别记录日志,日志将只包含此级别的事件。

可监控

此级别用于记录有关任何不可恢复的事件的消息,这些事件限制解决方案的功能但不终止应用程序。如果设置在此级别记录日志,日志还将包含关键错误(意外级别)。

此级别用于记录任何不停止处理解决方案的意外事件。如果设置在此级别记录日志,日志将包含警告、错误(可监视级别)和关键错误(意外级别)。

如果设置在此级别记录日志,跟踪日志将包含除“详细”消息以外的所有消息。此级别用于记录有关已执行的操作的所有高级信息。在此级别记录的详细信息足以用来构造数据流和操作序列。管理员或支持专业人员可使用此日志记录级别来解决相应问题。

详细

如果设置在此级别记录日志,日志将包含所有其他级别的消息。在使用此级别时,将记录几乎所有执行的操作。详细跟踪会产生许多日志消息。此级别通常只用于在开发环境中进行的调试操作。

诊断日志在开发环境和生产环境中都很有用,但日志记录级别的要求可能随环境类型的不同而不同。在规划 Microsoft Business Connectivity Services 中的诊断日志记录时,请先考虑业务需求和环境的生命周期阶段,然后再设置日志记录级别。

例如,在设计解决方案的过程中,出于调试的目的,您可能会将两个日志记录级别都设置为“详细”以捕获所有已生成的有关系统状态的消息。相反,在生产环境中,您可能只需捕获跟踪日志的类别为“高”、“可监控”和“意外”的消息和事件日志的类别为“关键”和“错误”的消息。通过执行此操作,可节省日志记录磁盘空间并限制日志记录导致的任何负面性能影响。

关于活动 ID

服务器和 Office 客户端上将为对基于 Microsoft Business Connectivity Services 的解决方案中的外部数据执行的每个创建、更新或删除操作生成一个称作“活动 ID”的唯一 GUID 值。跟踪日志或事件日志中记录的与操作相关的所有内容都包含该操作的活动 ID 值。

重要

在服务器上的事件日志文件和跟踪日志文件中,活动 ID 值标记为“CorrelationId”值。

将为创建、更新或删除操作生成的活动 ID 值连同与该操作有关的其他信息一起发送到外部系统。如果外部系统具有日志记录机制,则可以捕获此值并将其记录到该系统中。因此,如果某个操作导致对 SharePoint 服务器或 Office 客户端日志进行了输入,则可使用该操作的活动 ID 值将该操作跟踪到外部系统。这便于以端到端方式来解决问题。

通常,一个操作(如创建)将导致向日志写入多个事件。在出现此情况时,将对为操作记录的所有事件使用同一活动 ID 值。此操作对解决问题很有用,这是因为活动 ID 的定期值有助于查找某个特定操作的所有事件。相反,在重复执行同一类型的操作时,将为每个操作实例生成一个唯一的活动 ID 值。例如,如果对外部内容类型的某个项更新两次,则每个更新操作都将与一个唯一的活动 ID 值关联。

提示

在某些情况下,如果某个操作未能访问到外部系统,则 Business Data Connectivity Service将重试此操作。在这些情况下,将对重试的操作使用同一活动 ID。

服务器上的诊断日志记录

默认情况下,SharePoint Server 服务器上将启用 Microsoft Business Connectivity Services 日志记录。默认日志记录级别为:

  • 对于事件日志:关键和错误

  • 对于跟踪日志:中

Microsoft Business Connectivity Services 的诊断日志记录应已禁用,可通过在 SharePoint Server 管理中心的“诊断日志记录”页上选择“Business Connectivity Services”来启用它。还可以使用 Windows PowerShell 在服务器上配置事件日志和跟踪日志。例如,可以更改日志记录对其进行写入的驱动器,并可以将日志记录设置为详细级别。

有关 SharePoint Server 中的日志记录的详细信息(例如,如何设置日志文件的位置),请参阅配置诊断日志记录 (SharePoint Server 2010)

可以使用 Windows PowerShell 查看服务器上的事件日志,并可以将日志导出到电子表格程序。有关详细信息,请参阅查看诊断日志 (SharePoint Server 2010)

Microsoft Business Connectivity Services 将两个类别输出到 SharePoint Server 前端 Web 服务器上的跟踪日志中:BDC_Shared_ServicesSS_Shared_Service。可以使用事件查看器打开跟踪日志,并可以通过搜索“SPS_BusinessData”(针对 Microsoft Business Connectivity Services 输出)和“SPS_SecureStoreService”来筛选相关日志项。

Office 2010 客户端上的诊断日志记录

Microsoft Business Connectivity Services 解决方案的事件日志和跟踪日志在使用 Microsoft Business Connectivity Services 基础结构的 Microsoft Office 2010 套件客户端上可用。默认情况下,客户端上已启用 Microsoft Business Connectivity Services 的事件日志记录。但为了保护性能,仅记录错误和关键错误,并且无法更改此设置。Windows 客户端计算机包含一个可用于查看事件日志的事件查看器。有关如何查看特定版本的 Windows 的事件日志的信息,请参阅产品文档。

默认情况下,客户端计算机上已禁用跟踪日志记录以帮助改进性能。如果遇到需要诊断的问题,则应只在客户端计算机上启用跟踪日志记录。例如,如果事件日志项指示与 Microsoft Business Connectivity Services 相关的活动可能会导致出现错误,则启用跟踪日志记录以在下次出现该事件时收集其他数据。

用于启用跟踪日志记录和读取日志的方法根据计算机上的 Windows 的版本的不同而不同。例如,在运行 Windows XP 的计算机上,可通过运行使用 logman 命令的脚本启用跟踪。在 Windows Vista 和更高版本上,不仅提供了系统工具(如性能和可靠性监视程序),还提供了 logman 命令。有关如何启用跟踪以及如何捕获结果的详细信息,请参阅 Windows 产品文档。

以下示例脚本使用 logman 命令来启用跟踪日志记录:

rem This script will enable logging, directing log messages to a file specified by the "%FILE_NAME%" given by the user.

@setlocal
@echo off
pushd %~dp0
set PATH_NAME=%TEMP%\BCS
set FILE_NAME=%PATH_NAME%\ETWTraceLog
set TRACE_COLLECTION=BCS
::tracelog -start BCS -guid #b8622a02-c377-46b1-b861-38a787a8e44a -b 128 -flags 0xFFFF -level 5 -f "%FILE_NAME%.etl"
md "%PATH_NAME%" 1>nul 2>nul
logman create trace %TRACE_COLLECTION% -p "{b8622a02-c377-46b1-b861-38a787a8e44a}" 0xFFFF 5 -o "%FILE_NAME%.etl" -ets
echo.
echo Business Connectivity Services tracing has been started. To end press any key.
echo.
pause

与在服务器上一样,客户端上将为对某个项执行的每个创建、更新或删除操作生成一个唯一的活动 ID。这些值记录在日志中并将连同与操作有关的其他信息一起发送到外部系统。也可以配置一个解决方案,以便在错误消息中显示活动 ID 值。这便于解决解决方案用户遇到的问题。

重要

由于活动 ID 生成所依赖的 Windows 编程接口所需的事件跟踪版本在 Windows XP 操作系统上不可用,因此运行 Windows XP 的客户端上不支持活动 ID 生成。

示例:使用诊断日志记录

这个简化的小型方案说明如何在生产环境中使用诊断日志记录。企业已基于 Microsoft Business Connectivity Services 部署了一个新的考勤卡提交解决方案。此解决方案使用外部系统存储员工的考勤卡信息(如休假时间和病假),并在员工报告缺勤时与员工和工资系统进行交互。员工使用 Web 部件与此系统进行交互。

在服务器场上,日志记录级别将设置为 Microsoft Business Connectivity Services 的默认值:

  • 对于事件日志:关键和错误

  • 对于跟踪日志:中

在此方案中,员工提交了一个病假时间值(以小时为单位),但员工和其经理都未收到报告已成功提交病假时间的确认电子邮件。该员工致电内部技术支持服务人员并报告该问题。

技术支持人员知道考勤卡应用程序是基于 Microsoft Business Connectivity Services 的。她先检查了事件日志,但未找到在用户提交考勤卡请求时与用户的身份关联的错误;然后检查了跟踪日志,并在其中找到活动的证据:即在相应时间发生的与用户关联的更新操作。跟踪日志中的更新操作包含支持技术人员标注的活动 ID 值。

技术支持人员知道外部系统上也支持日志记录。她利用活动 ID 定位外部系统上记录的项,并找到更新操作结束时写入日志的错误的证据:更新失败,因为员工已休完为其分配的所有病假时间。她还注意到,不存在用于确认在更新操作结束后立即在外部系统上生成了电子邮件的日志项。技术支持人员推断出考勤卡应用程序的逻辑出现错误。虽然该应用程序在员工超出为其分配的病假时间(以小时为单位)的情况下没有为其分配病假工资(这是正确的做法),但未能生成电子邮件告知员工这一问题。她向创建该应用程序的开发团队报告了此问题,开发团队随即对该应用程序进行了更新。

See Also

Concepts

监控概述 (SharePoint Server 2010)
配置诊断日志记录 (SharePoint Server 2010)
Business Connectivity Services 概述 (SharePoint Server 2010)