本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
日志
使用 logs 命令分析核心设备上的 Greengrass 日志。
get
收集、筛选和可视化 Greengrass 日志文件。此命令仅支持 JSON 格式的日志文件。您可以在核心配置中指定日志记录格式。
- 摘要
-
greengrass-cli logs get [--log-dirpath/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。用于检查日志文件的目录路径,例如。请勿与/logs/greengrass/v2--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和值为alpha或beta的键name的日志消息。 -
--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][valuem|min|minutes][value]s|sec|seconds例如,以下参数用于指定当前时间之前的 1 小时到 2 小时 15 分钟之间的时间窗口:
--time-window -2h15min,-1hr。 -
-
--verbose。显示日志消息中的所有字段。请勿与--syslog一起使用。 -
--no-color,-nc。移除颜色编码。日志消息的默认颜色编码使用红色粗体文本。由于使用 ANSI 转义序列,因此仅支持 Unix 类终端。 -
--before,-b。在匹配的日志条目之前显示的行数。默认值为 0。 -
--after,-a。在匹配的日志条目之后显示的行数。默认值为 0。 -
--syslog。 使用定义的 syslog 协议处理所有日志文件。 RFC3164请勿与--log-dir和--verbose一起使用。系统协议使用以下格式:"<$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
list-keywords
显示可用于筛选日志文件的建议关键字。
- 摘要
-
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
list-log-files
显示位于指定目录中的日志文件。
- 摘要
-
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.