

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# 로그
<a name="gg-cli-logs"></a>

`logs` 명령을 사용하여 코어 디바이스의 Greengrass 로그를 분석합니다.

**하위 명령**
+ [get](#logs-get)
+ [list-keywords](#logs-list-keywords)
+ [list-log-files](#logs-list-log-files)

## get
<a name="logs-get"></a>

Greengrass 로그 파일을 수집, 필터링 및 시각화합니다. 이 명령은 JSON 형식의 로그 파일만 지원합니다. nucleus 구성에서 [로깅 형식](greengrass-nucleus-component.md#greengrass-nucleus-component-configuration-logging-format)을 지정할 수 있습니다.

**시놉시스**  

```
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> ]
```

**인수**:  
+ `--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`와 값이 `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시간\$12시간 15분 사이 전의 시간대를 지정하는 인수는 `--time-window -2h15min,-1hr`입니다.
+ `--verbose`. 로그 메시지의 모든 필드 표시. `--syslog`와 함께 사용하지 않습니다.
+ `--no-color`, `-nc`. 색상 코딩 제거. 로그 메시지의 기본 색상 코딩은 굵은 빨간색 텍스트 사용입니다. ANSI 이스케이프 시퀀스를 사용하기 때문에 UNIX 계열 터미널만 지원합니다.
+ `--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` 위치에서 로그 메시지를 읽습니다.

  AWS 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
<a name="logs-list-keywords"></a>

로그 파일을 필터링하는 데 사용할 수 있는 키워드 제안을 표시합니다.

**시놉시스**  

```
greengrass-cli logs list-keywords [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
<a name="logs-list-log-files"></a>

지정된 디렉터리에 있는 로그 파일을 표시합니다.

**시놉시스**  

```
greengrass-cli logs list-log-files [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.
```