日志 - Amazon IoT Greengrass
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

日志

使用该logs命令分析核心设备上的 Greengrass 日志。

get

收集、筛选和可视化 Greengrass 日志文件。此命令仅支持 JSON 格式的日志文件。您可以在 nucleus 配置中指定日志格式

摘要
greengrass-cli logs get [--log-dir path/to/a/log/folder] [--log-file path/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][valuem|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 定义的系统日志协议处理所有日志文件。请勿与--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

列表关键词

显示可用于筛选日志文件的建议关键字。

摘要
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.