本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
日志
使用logs
命令分析您的核心设备上的 Greengrass 日志。
get
收集、筛选和可视化 Greengrass 日志文件。此命令仅支持 JSON 格式的日志文件。您可以指定记录格式在核心配置中。
- 摘要
-
greengrass-cli logs get [--log-dir
path/to/a/log/folder
] [--log-filepath/to/a/log/file
] [--follow true | false ] [--filter<filter>
] [--time-window<start-time>
,<end-time>
] [--verbose ] [--no-color ] [--before<value>
] [--after<value>
] [--syslog ] [--max-long-queue-size<value>
] - Arguments (参数)
-
-
--log-dir
、-ld
. 检查日志文件的目录的路径,
. 请勿使用/greengrass/v2
/logs--syslog
. 为要指定的每个附加目录使用单独的参数。必须使用至少一个--log-dir
要么--log-file
. 也可以在单个命令中使用这两个参数。 -
--log-file
、-lf
. 指向您要使用的日志目录的路径。为要指定的每个附加目录使用单独的参数。必须使用至少一个--log-dir
要么--log-file
. 也可以在单个命令中使用这两个参数。 -
--follow
、-fol
. 发生日志更新时显示它们。Greengrass CLI 将继续运行并从指定的日志中读取。如果指定时间窗口,则 Greengrass CLI 会在所有时间窗结束后停止监控日志。 -
--filter
、-f
. 要用作筛选器的关键字、正则表达式或键值对。以字符串、正则表达式或键值对形式提供此值。为要指定的每个额外的过滤器使用单独的参数。评估时,单个参数中指定的多个过滤器由 OR 运算符分隔,在其他参数中指定的过滤器将与 AND 运算符组合使用。例如,如果你的命令包括
--filter "installed" --filter "name=alpha,name=beta"
,那么 Greengrass CLI 将过滤并显示包含两个关键字的日志消息installed
和name
有价值的键alpha
要么beta
. -
--time-window
、-t
. 显示日志信息的时间窗口。您可以同时使用确切的时间戳和相对偏移量。必须以格式提供此信息
. 如果不指定开始时间或结束时间,则该选项的值默认为当前系统日期和时间。对于要指定的每个额外时间窗,请使用单独的参数。<begin-time>
,<end-time>
Greengrass CLI 支持以下格式作为时间戳:
-
yyyy-MM-DD
(例如,)2020-06-30
. 使用此格式时,时间默认为 00:00:00。yyyyMMDD
(例如,)20200630
. 使用此格式时,时间默认为 00:00:00。HH:mm:ss
(例如,)15:30:45
. 使用此格式时,日期默认为当前系统日期。HH:mm:ssSSS
(例如,)15:30:45
. 使用此格式时,该日期默认为当前系统日期。YYYY-MM-DD'T'HH:mm:ss'Z'
(例如,)2020-06-30T15:30:45Z
.YYYY-MM-DD'T'HH:mm:ss
(例如,)2020-06-30T15:30:45
.yyyy-MM-dd'T'HH:mm:ss.SSS
(例如,)2020-06-30T15:30:45.250
.
相对偏移量指定与当前系统时间相比的时间段偏移量。Greengrass CLI 对于相对偏移支持以下格式:
+|-[<
.value
>h|hr|hours][value
m|min|minutes][value
]s|sec|seconds例如,以下参数用于指定在当前时间之前 1 小时到 2 小时 15 分钟之间的时间窗口为
--time-window -2h15min,-1hr
. -
-
--verbose
. 显示日志消息中的所有字段。请勿使用--syslog
. -
--no-color
、-nc
. 删除颜色编码。日志消息的默认颜色编码使用粗体红色文本。只支持类 Unix 的终端,因为它使用 ANSI 转义序列。 -
--before
、-b
. 匹配的日志条目之前要显示的行数。默认值为 0。 -
--after
、-a
. 匹配的日志条目之后要显示的行数。默认值为 0。 -
--syslog
. 使用 RFC3164 定义的 syslog 协议处理所有日志文件。请勿使用--log-dir
和--verbose
. syslog 协议使用以下格式:"<$Priority>$Timestamp $Host $Logger ($Class): $Message"
. 如果不指定日志文件,则 Greengrass CLI 将从以下位置读取日志消息:/var/log/messages
、/var/log/syslog
,或者/var/log/system.log
.Amazon IoT Greengrass目前在 Windows 核心设备上不支持此功能。
-
--max-log-queue-size
、-m
. 分配给内存的最大日志条目数。使用此选项可优化内存使用情况。默认值为 100。
-
- 输出
-
下面的示例显示了运行此命令时生成的输出。
$ sudo greengrass-cli logs get --verbose \ --log-file /greengrass/v2/logs/greengrass.log \ --filter deployment,serviceName=DeploymentService \ --filter level=INFO \ --time-window 2020-12-08T01:11:17,2020-12-08T01:11:22 2020-12-08T01:11:17.615Z [INFO] (pool-2-thread-14) com.aws.greengrass.deployment.DeploymentService: Current deployment finished. {DeploymentId=44d89f46-1a29-4044-ad89-5151213dfcbc, serviceName=DeploymentService, currentState=RUNNING} 2020-12-08T01:11:17.675Z [INFO] (pool-2-thread-14) com.aws.greengrass.deployment.IotJobsHelper: Updating status of persisted deployment. {Status=SUCCEEDED, StatusDetails={detailed-deployment-status=SUCCESSFUL}, ThingName=MyThing, JobId=22d89f46-1a29-4044-ad89-5151213dfcbc
列表关键字
显示可用于过滤日志文件的建议关键字。
- 摘要
-
greengrass-cli logs list-keywords [arguments]
- Arguments (参数)
-
无
- 输出
-
以下示例显示了运行此命令时生成的输出。
$ sudo greengrass-cli logs list-keywords Here is a list of suggested keywords for Greengrass log: level=$str thread=$str loggerName=$str eventType=$str serviceName=$str error=$str
$ sudo greengrass-cli logs list-keywords --syslog Here is a list of suggested keywords for syslog: priority=$int host=$str logger=$str class=$str
列表日志文件
显示位于指定目录中的日志文件。
- 摘要
-
greengrass-cli logs list-log-files [arguments]
- Arguments (参数)
-
--log-dir
、-ld
. 检查日志文件的目录的路径。 - 输出
-
下面的示例显示了运行此命令时生成的输出。
$ sudo greengrass-cli logs list-log-files -ld /greengrass/v2/logs/ /greengrass/v2/logs/aws.greengrass.Nucleus.log /greengrass/v2/logs/main.log /greengrass/v2/logs/greengrass.log Total 3 files found.