查看日志

本指南介绍了如何使用日志查看器搜索日志和查看日志条目。

准备工作

除非您将日志从 Amazon Web Services (AWS) 发送到 Logging,否则使用 Stackdriver Logging 不需要工作区

Stackdriver Logging 可以显示单个 Google Cloud Platform 项目的日志。如果您使用的是工作区,则 Logging 不会合并多个受监控项目的日志。您必须选择特定项目才能查看其日志。

如果您使用的是工作区和 AWS,请选择 AWS 连接器项目以查看 AWS 日志。

开始

  1. 转到 GCP Console 中的 Stackdriver Logging > 日志(日志查看器)页面。

    转到“日志查看器”页面

  2. 在页面顶部选择一个现有 GCP 项目,或者创建一个新项目。

  3. 使用下拉菜单选择您要查看其日志的资源。

如果您没有看到任何日志,请参阅下文的问题排查部分。

日志查看器的过滤条件界面

日志查看器中有两种过滤条件界面:

  • 基本过滤条件界面 - 用于通过菜单选择日志,具有简单的搜索功能。
  • 高级过滤条件界面 - 用于查看来自多个日志的日志条目,并具有更复杂的搜索功能。

在上述任一界面中,您都可以使用搜索过滤框最右侧的下拉箭头 (▾) 在两个界面之间进行切换。

下面的屏幕截图显示了日志查看器的基本过滤条件界面布局。此屏幕截图显示了来自 App Engine 应用的日志条目:

日志查看器

基本过滤条件界面包含以下几大部分(如上方屏幕截图中的红色数字所示),其中一些与高级过滤条件界面相同:

  1. 窗口标签页 - 供您查看日志(“日志查看器”页面),或选择其他 Stackdriver Logging 功能:指标(请参阅基于日志的指标)、导出(请参阅使用日志查看器导出)和日志提取(请参阅日志排除项)。
  2. 基本过滤条件界面中的搜索过滤框 - 您可使用此框通过标签或文本搜索来过滤日志条目。基本过滤条件如图中所示,您可通过最右侧的下拉箭头 (▾) 切换到高级过滤条件界面或获取指向过滤器的链接。
  3. 基本选择器菜单 - 供您选择要显示的资源、日志和严重级别。
  4. 时间范围选择器下拉菜单 - 用于过滤特定日期和时间范围的日志。
  5. 页面顶部的流式显示选择器 - 用于控制是否在收到新的日志条目时显示该条目。
  6. 日志条目表 - 包含符合当前过滤条件和自定义字段的日志条目。
  7. 位于每个日志条目前方的展开箭头 (▸) - 供您查看相应条目的完整内容。如需了解详情,请参阅展开日志条目
  8. 位于最右侧的查看选项菜单 - 包含其他显示选项。
  9. 位于最右侧的下载日志菜单 - 供您下载一组日志条目。如需了解详情,请参阅下载日志条目
  10. 对每个日志条目都会显示的更多 (⋮) 选项 - 供您在日志条目上添加图钉、在其资源上下文中显示日志条目,以及将日志条目的网址复制到剪贴板。

最后,日志查看器使用游标位置突出显示相关的日志条目,并在更多 (⋮) 旁边显示一个图钉 (📌) 符号。

滚动和流式显示日志

首次打开日志查看器时,您会看到最新的日志条目占满了屏幕。滚动浏览日志条目时,日志查看器将尝试获取更多条目。您可通过日志上下方的黄色长条确定是否有更多日志条目。

屏幕顶部的图标可控制何时刷新日志:

  • 点击“刷新”图标 (refresh) 可检索最新日志并滚动到它们所在的屏幕位置。
  • 点击“播放”图标 (play_arrow) 可流式显示最新日志。如果您选中某个日志条目或者滚动显示日志,流式显示便会停止。
  • 点击“暂停”图标 (pause) 可停止流式显示。

滚动到某个时间

您可以使用搜索过滤框下方的时间范围选择器菜单,按日期和时间过滤日志条目。

时间范围选择器

默认选项为过去 1 小时。您可以使用下拉菜单选择其他时间范围或定义一个范围:

  • 选择跳转到指定时间可过滤特定日期和时间的日志。
  • 选择自定义可指定自定义范围或时区。

要显示当前日志条目,请点击跳至现在

无论何种情况下,只要进行选择都会使日志查看器刷新显示内容。然后,您可以滚动浏览并检查显示的日志条目。

要重置与最近收到的日志条目对应的日期和时间,请点击刷新播放图标。

更改时区

您可以为日志条目选择时区:

  1. 过去 1 小时下拉菜单中,选择自定义
  2. 点击其中一个新菜单中的展开箭头 (▾) 以打开下拉日历。
  3. 时区窗格中,选择您偏好的国家/地区和时区。

进行选择后,日志查看器会刷新显示内容并更新每个日志条目的时区:

自定义时区

展开日志条目

日志条目表默认显示每个日志条目的摘要行。

日志条目摘要行

日志条目摘要行可能包含突出显示的字段。例如,突出显示自定义字段。

摘要行中包含的字段将被选为日志条目字段的子集。如果字段满足以下一个或多个条件,系统默认会显示该字段:

  • 日志条目的类型已知(例如 App Engine 请求日志)。
  • 日志条目包含 httpRequest 字段。
  • 日志条目的一个负载包含名为 message 的字段。

要查看某个日志条目的完整详细信息,请点击摘要行前端的展开箭头 (▸)。要在符合当前过滤条件的所有日志条目的结构化视图中查看完整详细信息,请点击最右侧的查看选项菜单,然后选择全部展开

“查看选项”菜单

选择全部收起即可收起展开的所有日志条目详细信息。

展开日志条目的摘要行后,日志查看器会显示结构化 (JSON) 表示法。

结构化请求日志条目

如需了解日志条目中的字段,请参阅 LogEntry 类型。

添加自定义字段

自定义字段是日志条目中那些您可以指定要包含在摘要行中的字段。系统会填充这些字段并以蓝色突出显示,前提是您的日志条目中存在相应字段。

摘要行中的自定义字段

您可以通过以下两种方式向日志条目表摘要行添加自定义字段:

  • 展开的日志条目中,点击使用 JSON 表示法的某个字段。在由此显示的面板中,选择向摘要行添加字段

向摘要行添加字段

  • 在日志查看器右上角的查看选项菜单中,选择添加自定义字段(如果此项目中已有自定义字段,此选项将为修改自定义字段)。在由此显示的面板中,添加所需的 JSON 键,然后点击保存。您可以添加多个键,使用英文逗号分隔即可。要对摘要行中的自定义字段重新排序,请对此面板中的文本重新排序,然后点击保存

向摘要行添加 JSON 字段

您可以通过两种方式从日志条目表摘要行中移除自定义字段:

  • 在包含要移除的自定义字段的任一摘要行中,点击相应字段,然后选择从摘要行中移除字段
  • 在日志查看器右上角的查看选项菜单中,选择修改自定义字段。在由此显示的面板中,删除要移除的 JSON 键,然后点击保存

自定义字段将添加到当前网址中,只要您使用该网址或者位于同一个浏览器会话中,自定义字段就会一直显示。自定义字段无法在全局级别设置,也无法针对某个用户或某个 GCP 项目保存。

默认字段无法从日志条目表中移除。

固定日志条目

如果您已确定一个感兴趣的日志条目并希望调查附近的条目,则可以在该日志条目上添加一个图钉。固定该日志条目后,您可以更改过滤条件,然后日志查看器会自动将搜索集中在固定条目周围。通过固定,您可以在自定义的过滤条件指定的上下文中检查日志条目。日志被固定后,其背景将会变化并会显示一个图钉:

固定的日志条目

要固定日志条目,请点击其图钉或点击更多 (⋮) 并选择固定此日志条目

为日志条目添加图钉后,该图钉仅对您可见。查看同一日志条目的任何其他用户都不会看到您的图钉,他们的视图也不会进行任何方式的修改。

固定日志条目不会更改过滤条件界面、过滤条件设置或刷新显示的内容。您可以确定过滤条件设置以及刷新日志查看器显示内容的时间。您可以根据需要修改过滤条件设置并刷新显示内容任意次数,而不会影响固定设置。

固定日志条目将停止流式显示功能(如果目前已启用)。

固定某个日志条目后,您可以更改固定的条目或取消固定:

  • 要固定其他日志条目,请在新日志条目上点击其图钉图标或点击更多 (⋮) 并选择转为固定此日志条目

  • 要取消固定日志条目,请点击其图钉符号或点击更多 (⋮),然后选择取消固定此日志条目

如果在固定日志条目后启用流式显示功能,则日志查看器将移除图钉。

显示相似日志

您可以在展开的日志条目视图中点击单个字段的值,然后显示或隐藏包含该值的所有日志条目。

显示匹配条目

执行此操作后,日志查看器会切换为高级过滤条件界面。要修改搜索条件,请修改过滤条件,然后点击提交过滤条件。如需了解详情,请参阅高级过滤条件界面

此外,您可以关联 App Engine 请求日志条目,然后在嵌套结构中查看这些日志条目。如需了解详情,请参阅查看相关请求日志条目并选择您的运行时语言。

显示延迟时间详情

对于 App Engine 请求日志新日志,日志查看器提供了指向 Stackdriver Trace 的链接,方便用户查看日志条目的延迟时间详情。

要显示日志条目的延迟时间相关选项菜单,请识别 protoPayload.latency 字段:

显示 protoPayload.latency

点击延迟时间值:

显示延迟时间选项

菜单中的前两个选项将显示的日志条目限制为延迟时间更高或更低的日志条目。菜单中的最后一个选项将日志条目限制为包含 Stackdriver Trace 可查看的跟踪记录详情的日志条目。具体而言,最后一个选项将日志条目限制为启用了查看跟踪记录详情的日志条目。

在 Stackdriver Trace 中查看延迟时间详情

对于某些 App Engine 请求日志,系统将启用查看跟踪记录详情选项。如果此选项已启用,点击它即可打开 Stackdriver Trace 并显示相应日志条目的延迟时间详情:

显示跟踪记录时间轴

在资源上下文中显示

如果您已确定一个感兴趣的日志条目并希望确定同一资源类型相关的其他日志条目,请点击该行最右侧的更多 (⋮),然后选择在资源上下文中显示选项:

显示上下文

为响应您的操作,日志查看器将执行以下操作:

  1. 固定此日志条目
  2. 切换到高级过滤条件界面,并使用该资源类型的过滤条件替换过滤条件内容。
  3. 刷新显示的内容。固定的日志条目会显示在显示内容的底部。

在上下文中显示

共享日志条目

要共享日志条目,请点击更多 (⋮),然后选择将指向日志条目的链接复制到剪贴板。此操作会使日志查看器为该日志条目生成唯一的网址,并将此网址复制到剪贴板中。

选择日志

使用菜单和搜索过滤框查找要查看的日志:

  • 选择一个资源类型以及要查看其日志的实例。您可以查看相应资源类型的所有实例,也可以选择特定实例。在上方的屏幕截图中,我们选择的是 GCE 虚拟机实例(所有实例)。如需资源类型的列表,请参阅受监控的资源列表

  • 在第 2 个菜单中选择要查看且已命名的日志,或者选择所有日志。该菜单将显示所选资源实例正在使用的日志。

  • 在第 3 个菜单中选择要查看的最低严重级别。选择任何日志级别还会显示尚未指定严重级别的日志条目。

  • 在第 4 个菜单中选择要查看的时间范围,或者在第 5 个菜单中选择跳至现在

更改菜单选项后,您会看到匹配的日志条目。

菜单说明

  • 菜单中只显示项目中出现的资源类型、实例和日志名称。添加新的资源类型或实例或者写入到新日志后,菜单可能需要一小段时间才会更新。

  • 在基本过滤条件界面中,一次只能查看一种资源类型的日志条目。高级过滤条件界面则支持多种资源类型。

  • 如果您浏览到当前保留期限之前的某个时间,则不会看到任何日志。如需了解详情,请参阅日志保留期限

下载日志条目

只需点击几下,您就能以 JSON 或 CSV 格式下载存储在日志查看器工作内存中的所有日志条目。考虑到性能原因,日志查看器会尝试一次加载 100 个日志条目,并在其工作内存中保留不超过 300 个日志条目。这些值不可配置。

要下载日志条目,请点击日志查看器右上角的下载日志菜单。在下载对话框中,为日志条目格式选择 JSON 或 CSV,然后点击下载

显示下载详情

要在网页中查看 JSON 或 CSV 格式的日志条目,请按照与下载相同的步骤操作,但选择在新标签页中查看

使用日志查看器进行搜索

您可以在基本和高级过滤条件界面中使用过滤条件进一步缩小搜索范围。高级过滤条件界面的大部分功能都与基本过滤条件界面相同,但它的搜索功能更为复杂。

基本过滤条件和高级过滤条件之间的区别

基本过滤条件界面和高级过滤条件界面的语法不同。基本过滤条件界面是基于假设构建的,例如,所有搜索条件都不区分大小写,而高级过滤条件界面却区分大小写。

以下几个部分将重点介绍这两个界面之间语法的主要区别。

关键字“text:”

日志查看器在基本过滤条件中显示文本搜索条件时,会在文本前面添加标签 text:。请勿在高级过滤条件中使用 text: 标签。

下表显示了等效的文本搜索条件:

日志查看器基本过滤条件 具有相同含义的高级日志过滤条件
text:"one two" "one two"
text:three three
text:n=5 "n=5"(需要使用英文引号)

如果您在高级过滤条件中误用了 text:,系统将在名为 text 的字段(实际并不存在)中搜索匹配项。

字段名称

对于某些日志(包括 App Engine 请求日志),基本过滤条件界面具有内置字段名称。高级过滤条件中不存在这些字段名称。

下表显示了 App Engine 请求日志的等效字段搜索条件:

基本过滤条件 高级过滤条件
querystring:var=3 protoPayload.resource:"var=3"
status:400..405 protoPayload.status >= 400 AND protoPayload.status <= 405

如果在高级过滤条件中使用 querystring:var=3,系统将搜索名为 querystring 的字段(实际并不存在)。因此,日志查看器找不到任何匹配的日志条目。

子字符串匹配

在基本过滤条件界面中,所有搜索条件都是不区分大小写的子字符串匹配。也就是说,搜索条件 text:abcsomefieldname:abc 将匹配包含 abcxyabcyxABc 等的日志条目。在高级日志过滤条件中,必须使用“包含”搜索运算符 (:),才能达到同样的效果。

要进行完全匹配,请使用等号运算符 (=)。比较等式 field=abc 要求 field 仅包含 abc(字母不区分大小写)。在基本过滤条件界面中无法表示该搜索条件。

AND 与 OR

在基本过滤条件界面中,使用同一字段名称(即 text:)的两个比较等式通过 OR 隐式联接,而不同标签的比较等式则通过 AND 联接。在高级日志过滤条件中,除非明确指定使用 OR,否则所有比较等式均通过 AND 联接。此外,您还可以使用英文括号对比较等式进行分组。下表显示了两种过滤条件界面中的等效搜索条件:

基本过滤条件界面中的搜索条件 高级过滤条件界面中的搜索条件
text:abc querystring:def text:xyz protoPayload.resource:"def" AND ("abc" OR "xyz")

搜索效果

下面的一些提示可用于提升搜索效果:

  • 搜索已编入索引的字段的特定值,例如日志条目的名称、资源类型和资源标签。在基本过滤条件界面中,您可以使用菜单选项执行此操作。在高级过滤条件界面中,请使用如下条件:

    resource.type = "gce_instance"
    logName = "projects/[PROJECT_ID]/logs/cloudaudit.googleapis.com%2Factivity"
    resource.labels.module_id="default"
    resource.labels.instance_id="1234567890"
    
  • 选择完全匹配效果优于使用子字符串搜索条件。尤其是对于已编入索引的字段,部分匹配速度会比较慢。在基本过滤条件界面中,所有文本搜索条件都是部分匹配。在高级过滤条件界面中,最好使用等号运算符 (=),而不要使用“包含”运算符 (:)。

  • 缩短搜索的时间段。在基本过滤条件界面中无法执行此操作,但您可以在高级过滤条件界面中指定时间范围:

    timestamp >= "2016-11-29T23:00:00Z" AND timestamp <= "2016-11-29T23:30:00Z"
    

如需详细了解搜索效果,请参阅快速查找日志条目

问题排查

本部分提供了相关说明介绍如何排查在与日志查看器交互或在其中搜索日志时出现的常见问题。

没有任何日志!

如果您没有看到任何日志,请执行以下检查:

  • 是否在页面顶部选择了正确的项目? 如果答案是否定的,请使用页面顶部的下拉菜单选择正确的项目。您必须选择要查看哪个项目的日志。

  • 您的项目是否有活动? 即使项目是全新的,也应该有记录“项目已创建”这一事实的活动或审核日志。您可以按快速入门的说明操作一遍,以获取更多日志。

  • 时间范围是否过窄? 您可以在搜索过滤框下方的下拉菜单中选择其他时间范围,也可以定义一个自定义范围。选择跳转到指定时间即可过滤特定日期和时间的日志,也可以使用跳至现在菜单查看当前的日志条目。

我的搜索条件不起作用!

如果您不确定基本过滤条件界面中的搜索条件为何不起作用,请暂时切换到高级过滤条件界面:

  1. 选择搜索过滤框末尾的 &blacktriangledown; 菜单中的转换为高级过滤条件
  2. 查看高级过滤条件,确定它是否符合您的需求。
  3. 使用浏览器的后退按钮返回基本过滤条件界面。

下面列出了可能会导致您无法看到预期的所有日志条目的其他原因:

  • 您无法看到早于 Stackdriver Logging 保留期限的日志条目。如需了解有效的日志保留期限,请参阅日志保留期限

  • 在高负载时段内,将日志发送到 Stackdriver Logging 或者接收及显示日志的过程可能存在延迟。

  • 日志查看器不会显示带有未来时间戳的日志条目,直到当前时间“赶上”这些时间戳后才会显示。这种情况并不常见,可能是由发送日志的应用中的时间偏差引起的。

后续步骤

此页内容是否有用?请给出您的反馈和评价:

发送以下问题的反馈:

此网页
Stackdriver Logging
需要帮助?请访问我们的支持页面