在 SharePoint Server 中查看诊断日志

浏览 : 888 次 Fri, 01 Apr 2022 22:11:21 GMT

适用于: yes-img-13  2013  yes-img-16  2016  yes-img-19  2019  yes-img-se  Subscription Edition  no-img-sop  SharePoint in Microsoft 365

可以在 SharePoint Server 中使用统一日志记录服务 (ULS) 日志中的数据来解决服务器场中的问题。根据日志记录设置,ULS 日志可收集不同级别的数据。可使用 PowerShell 筛选数据,以各种方式显示,并将数据输出到数据网格,通过该数据网格,可以筛选、排序、分组数据以及将数据导出到 Excel 2016。

使用 PowerShell 查看和筛选日志事件

可使用 PowerShell 查看和筛选日志事件。无法使用 SharePoint 管理中心网站查看或筛选日志事件。

使用 PowerShell 查看和筛选日志事件

  1. 确认您具有以下成员身份:
  • SQL Server 实例上的 securityadmin 固定服务器角色。

  • 要更新的所有数据库上的 db_owner 固定数据库角色。

  • 运行 PowerShell cmdlet 的服务器上的 Administrators 组。

    管理员可以使用 Add-SPShellAdmin cmdlet 授予使用权限。

     备注

    如果您不具有这些权限,请联系您的安装管理员或 SQL Server 管理员来请求权限。有关 PowerShell 权限的其他信息,请参阅 Add-SPShellAdmin

  1. 转到“SharePoint 命令行管理程序”。

  2. 在 PowerShell 命令提示符处,键入以下命令:

  • 所有跟踪事件
Get-SPLogEvent
  • 按级别
Get-SPLogEvent | Where-Object {$_.Level -eq "Information" }
  • 按区域
Get-SPLogEvent | Where-Object {$_.Area -eq 

}

其中 

 是 Area 属性的值。

  • 按类别
Get-SPLogEvent | Where-Object {$_.Category -eq 

其中  是 Category 属性的值。

  • 按事件 ID
Get-SPLogEvent | Where-Object {$_.EventID -eq }

其中  是 EventID 属性的值。

  • 按消息文本
"}
" style="box-sizing: inherit; font-family: SFMono-Regular, Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 1em; direction: ltr; outline-color: inherit; line-height: 1.3571; border: 0px; display: block; padding: 0px; position: relative;">Get-SPLogEvent | Where-Object {$_.Message -like ""}

其中  是事件消息中的字符串。

  • 按过程
"}
" style="box-sizing: inherit; font-family: SFMono-Regular, Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 1em; direction: ltr; outline-color: inherit; line-height: 1.3571; border: 0px; display: block; padding: 0px; position: relative;">Get-SPLogEvent | Where-Object {$_.Process -like ""}

其中  是 Process 属性的值。

默认情况下,该命令会从默认 ULS 日志文件夹中检索数据。若要查看和筛选网络上的共享文件夹上的跟踪事件,请使用 Get-SPLogEvent cmdlet 的 Directory 参数。

若要查看有关每个跟踪事件的详细信息,请在命令末尾处使用 Format-List 。例如,

Get-SPLogEvent | Where-Object {$_.Area -eq "SharePoint Foundation"} | Format-List

有关详细信息,请参阅 Get-SPLogEvent

使用 PowerShell cmdlet 查看和导出Out-GridView日志

PowerShell 提供了一个强大且易于使用的功能,在一个单独的窗口中的可筛选、可搜索的数据网格中显示由 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 查看和筛选诊断日志的具体步骤

  1. 确认您具有以下成员身份:
  • SQL Server 实例上的 securityadmin 固定服务器角色。

  • 要更新的所有数据库上的 db_owner 固定数据库角色。

  • 运行 PowerShell cmdlet 的服务器上的 Administrators 组。

    管理员可以使用 Add-SPShellAdmin cmdlet 授予使用权限。

     备注

    如果您不具有这些权限,请联系您的安装管理员或 SQL Server 管理员来请求权限。有关 PowerShell 权限的其他信息,请参阅 Add-SPShellAdmin

  1. 转到“SharePoint 命令行管理程序”。

  2. 在 PowerShell 命令提示符处,键入以下命令:

Get-SPLogEvent | Out-GridView
  1. 若要对列进行排序,请单击列标题。

  2. 若要搜索特定字符串,请在"筛选"框中键入该字符串。将在所有列和所有行中执行搜索。若要清除搜索,请单击"X"。

  3. 若要仅根据一个条件筛选数据,在"搜索"框中 键入 以下内容 :: 。 For example, to search for all log entries raised by SharePoint Foundation 2013, type the following: Area:SharePoint Foundation. To clear the filter, click X.

  4. 若要使用多个条件或使用具有“包含、起始为、结束于”的条件或其他方法筛选数据,请执行下列操作:

  5. 单击"添加条件"按钮。

  6. 单击要对其进行筛选的属性所对应的复选框,然后单击"添加"。

  7. 单击"包含"可改用其他筛选方法。可用的方法有"包含"、"不包含"、"起始为"、"等于"、"不等于"、"结束于"、"为空"和"非空"。

  8. 在文本框中键入值。

  9. 对在步骤“b”中选择的每个属性重复步骤“c”和“d”。

  10. 当指定所有筛选条件时,将显示满足条件的数据。

  11. 若要清除特定筛选器,请单击"X"按钮。

  12. 若要清除所有筛选器,请折叠查询视图并单击“全部清除”按钮。

将网格数据导出到电子表格的具体步骤

  1. 选择要导出的行。按住 Shift 同时拖动鼠标可选择多个行,按住 Ctrl 同时单击可选择特定行,按 Ctrl+A 可选择所有行。

    还可在将数据复制到电子表格前筛选和排序结果。在排序或筛选数据时,只会复制生成的可视数据。

  2. 使用 Ctrl+C 复制所选行。

  3. 打开电子表格工作簿页,然后使用 Ctrl+V 将复制的行粘贴到其中。

有关详细信息,请参阅 Out-GridView 和 Out-GridView 已重新访问

在 SharePoint Server 中查看诊断日志
https://docs.microsoft.com/zh-cn/sharepoint/administration/view-diagnostic-logs