在 SharePoint Server 中查看诊断日志
**上一次修改主题:**2018-03-12
**摘要:**了解如何使用 Windows PowerShell 显示和筛选日志事件,以及如何使用 Out-GridView cmdlet 查看和导出诊断日志。
可以在 SharePoint Server 中使用统一日志记录服务 (ULS) 日志中的数据来解决服务器场中的问题。根据日志记录设置,ULS 日志可收集不同级别的数据。可使用 PowerShell 筛选数据,以各种方式显示,并将数据输出到数据网格,通过该数据网格,可以筛选、排序、分组数据以及将数据导出到 Excel 2016。
本文内容:
使用 Windows PowerShell 查看和筛选日志事件
可使用 PowerShell 查看和筛选日志事件。无法使用 SharePoint 管理中心网站查看或筛选日志事件。
使用 Windows PowerShell 查看和筛选日志事件的具体步骤
确认您具有以下成员身份:
SQL Server 实例上的 securityadmin 固定服务器角色。
要更新的所有数据库上的 db_owner 固定数据库角色。
运行 PowerShell cmdlet 的服务器上的 Administrators 组。
管理员可以使用 Add-SPShellAdmin cmdlet 授予使用权限。
备注
如果您不具有这些权限,请联系您的安装管理员或 SQL Server 管理员来请求权限。有关 PowerShell 权限的其他信息,请参阅 Add-SPShellAdmin。
转到“SharePoint 命令行管理程序”。
在 PowerShell 命令提示符处,键入以下命令:
所有跟踪事件:
Get-SPLogEvent
按级别:
Get-SPLogEvent | Where-Object {$_.Level -eq "Information" }
按区域:
Get-SPLogEvent | Where-Object {$_.Area -eq <Area>}
其中 <Area> 是 Area 属性的值。
按类别:
Get-SPLogEvent | Where-Object {$_.Category -eq <Category>
其中 <Category> 是 Category 属性的值。
按事件 ID:
Get-SPLogEvent | Where-Object {$_.EventID -eq <EventID>}
其中 <EventID> 是 EventID 属性的值。
按消息文本:
Get-SPLogEvent | Where-Object {$_.Message -like "<string>"}
其中 <string> 是在事件消息中找到的字符串。
按过程:
Get-SPLogEvent | Where-Object {$_.Process -like "<Process>"}
其中 <Process> 是 Process 属性的值。
默认情况下,该命令会从默认 ULS 日志文件夹中检索数据。若要查看和筛选网络上的共享文件夹上的跟踪事件,请使用 Get-SPLogEvent cmdlet 的 Directory 参数。
若要查看有关每个跟踪事件的详细信息,请在命令末尾处使用 Format-List。例如,
Get-SPLogEvent | Where-Object {$_.Area -eq "SharePoint Foundation"} | Format-List
有关详细信息,请参阅 Get-SPLogEvent。
使用 Windows PowerShell Out-GridView cmdlet 查看和导出诊断日志
PowerShell 提供了一个强大且易于使用的功能,可在单独窗口的可筛选、可搜索数据网格中显示 Microsoft PowerShell 命令生成的表格数据。可使用此网格来查看日志事件,以及对数据执行下列操作:
依据任何列排序数据。
查看组中的数据。
依据级别、区域、类别、消息、事件 ID 或时间戳来筛选数据。
搜索任意字符串数据。
将原始或已排序或已筛选数据导出到电子表格。
备注
Out-GridView cmdlet 不能与使用 Format 动词的 cmdlet 一起使用。Out-GridView cmdlet 用于接收对象,而使用 Format 动词的 cmdlet 只返回格式化文本。
可以使用筛选并将结果传递给 Out-GridView cmdlet 的 Where-Object cmdlet 来查看数据子集。例如,Get-SPLogEvent | Where-Object {$_.Area -eq "SharePoint Foundation"} | Out-GridView
。
如果网格显示的行超过几百,则运行速度可能会很慢,尤其是当执行复杂筛选操作时。为了提高性能,请将数据导出到 Excel 2016。
使用 Windows PowerShell 查看和筛选诊断日志的具体步骤
确认您具有以下成员身份:
SQL Server 实例上的 securityadmin 固定服务器角色。
要更新的所有数据库上的 db_owner 固定数据库角色。
运行 PowerShell cmdlet 的服务器上的 Administrators 组。
管理员可以使用 Add-SPShellAdmin cmdlet 授予使用权限。
备注
如果您不具有这些权限,请联系您的安装管理员或 SQL Server 管理员来请求权限。有关 PowerShell 权限的其他信息,请参阅 Add-SPShellAdmin。
转到“SharePoint 命令行管理程序”。
在 PowerShell 命令提示符处,键入以下命令:
Get-SPLogEvent | Out-GridView
若要对列进行排序,请单击列标题。
若要搜索特定字符串,请在“筛选”框中键入该字符串。将在所有列和所有行中执行搜索。若要清除搜索,请单击“X”。
若要仅依据一个条件筛选数据,请在“搜索”框中键入以下内容:<property name>:<value>。例如,若要搜索 SharePoint Foundation 2013 引发的所有日志项,请键入以下内容:Area:SharePoint Foundation。若要清除筛选器,请单击“X”。
若要使用多个条件或使用具有“包含、起始为、结束于”的条件或其他方法筛选数据,请执行下列操作:
单击“添加条件”按钮。
单击要对其进行筛选的属性所对应的复选框,然后单击“添加”。
单击“包含”可改用其他筛选方法。可用的方法有“包含”、“不包含”、“起始为”、“等于”、“不等于”、“结束于”、“为空”和“非空”。
在文本框中键入值。
对在步骤"b"中选择的每个属性重复步骤"c"和"d"。
当指定所有筛选条件时,将显示满足条件的数据。
若要清除特定筛选器,请单击“X”按钮。
若要清除所有筛选器,请折叠查询视图并单击“全部清除”按钮。
将网格数据导出到电子表格的具体步骤
选择要导出的行。按住 Shift 同时拖动鼠标可选择多个行,按住 Ctrl 同时单击可选择特定行,按 Ctrl+A 可选择所有行。
还可在将数据复制到电子表格前筛选和排序结果。在排序或筛选数据时,只会复制生成的可视数据。
使用 Ctrl+C 复制所选行。
打开电子表格工作簿页,然后使用 Ctrl+V 将复制的行粘贴到其中。
有关详细信息,请参阅 Out-GridView (https://go.microsoft.com/fwlink/p/?LinkId=181248) 和再次访问 Out-GridView (https://go.microsoft.com/fwlink/p/?LinkId=181249)。