19

如何使用正则表达式在新的 Cloud Console 中搜索 Google App Engine 日志?

这篇文建议您只需要键入regex:my.*query即可搜索,但这似乎在日志控制台中不起作用。当我这样做时,它会自动更正为以下查询text:regex:my.*query

4

3 回答 3

18

虽然,我来晚了,但你可以在 stackdriver 中完成。

=           # equal
!=          # not equal
> < >= <=   # numeric ordering
:           # "has" matches any substring in the log entry field

如果您想查找所有 500 in 的 GET 响应textPayload,则需要添加过滤器:

textPayload:"500"

zone要在其中搜索所有central1内容:

resource.labels.zone:"-central1-"

而已。您可以参考此链接以获取更多高级过滤器

于 2018-12-14T11:04:06.777 回答
10

Stackdriver Logging 产品目前不支持正则表达式。它最初被支持一段时间(正如您在博客文章中看到的那样),但我们发现它很少使用,并且其中许多用途是用于具有更简单解决方案的简单模式,而没有正则表达式的性能和其他损失。

在基本过滤模式(默认)下,文本搜索自动不区分大小写并匹配字段值的子字符串,您可以使用“..”表示数字范围。在高级过滤器模式下,“has”运算符通过在过滤器表达式中使用 a:而不是a 来完成相同的操作,例如. (另请参阅:编写有效的高级过滤器=path.to.field: "value"

如果这些操作员没有实现您的目标,请考虑通过 Cloud Console 右上角的对话气泡按钮提交反馈,提供您的使用案例的详细信息以及您最终要完成的工作,我们会将这些反馈合并为我们规划产品的未来方向。

于 2016-05-16T15:15:39.303 回答
8

如今,Google Cloud Operations Logging 支持正则表达式。此功能于 2020 年 9 月 17 日发布,请参阅https://cloud.google.com/blog/products/management-tools/cloud-logging-gets-regular-expression-support。您的正则表达式以这种格式工作:

textPayload=~"my.*query"

您可以使用 operator 查询正则表达式匹配项,使用 operator 查询=~不匹配项!~

=~          # regular expression search for a pattern
!~          # regular expression search not for a pattern

有关语法和示例的更多信息,请参阅 Google Cloud Operations Suite 日志查询语言参考:https ://cloud.google.com/logging/docs/view/logging-query-language#regular-expressions

于 2021-01-25T19:58:15.720 回答