

# Configurar o registro em log para recursos do AWS IoT Wireless
<a name="configure-resource-logging"></a>

Para configurar o registro em log de recursos do AWS IoT Wireless, use a API ou a CLI. Quando você começar a monitorar recursos do AWS IoT Wireless, é possível usar a configuração padrão. Para fazer isso, pule este tópico e avance para [Monitorar o AWS IoT Wireless com o CloudWatch Logs](cloud-watch-logs.md) para monitorar seus logs.

Depois de começar a monitorar os logs, é possível usar a CLI para alterar os níveis de log para uma opção mais detalhada, como fornecer informações de `INFO` e `ERROR` e ativar o registro em log para obter mais recursos.

## Recursos e níveis de log do AWS IoT Wireless
<a name="log-levels-resources"></a>

Antes de usar a API ou a CLI, use a tabela a seguir para saber mais sobre os diferentes níveis de log e os recursos para os quais você pode configurar o registro em log. A tabela exibe parâmetros que você vê nos logs do CloudWatch ao monitorar recursos. A forma como você configura o registro em log para seus recursos determinará os logs que presentes no console.

Para obter informações sobre a aparência de uma amostra de logs do CloudWatch e como você pode usar esses parâmetros para registrar em log informações úteis sobre os recursos do AWS IoT Wireless, consulte [Visualizar entradas de log do AWS IoT Wireless no CloudWatch](cwl-format.md).


**Recursos e níveis de log**  

| Nome | Possíveis valores | Descrição | 
| --- | --- | --- | 
| logLevel |  `INFO`, `ERROR` ou `DISABLED`  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/iot-wireless/latest/developerguide/configure-resource-logging.html)  | 
| resource |  `WirelessGateway` ou `WirelessDevice`  |  O tipo do recurso, que pode ser `WirelessGateway`, ou `WirelessDevice`.  | 
| wirelessGatewayType | LoRaWAN | O tipo de gateway sem fio, quando resource é WirelessGateway, que é sempre LoRaWAN. | 
| wirelessDeviceType | LoRaWAN ou Sidewalk | O tipo do dispositivo sem fio, quando resource é WirelessDevice, que pode ser LoRaWAN ou Sidewalk. | 
| wirelessGatewayId | - | O identificador do gateway sem fio, quando resource é WirelessGateway. | 
| wirelessDeviceId | - | O identificador do dispositivo sem fio, quando resource é WirelessDevice. | 
| event | Join, Rejoin, Registration, Uplink\$1data, Downlink\$1data, CUPS\$1Request, e Certificate | O tipo de evento que está sendo registrado em log, que depende se o recurso que você está registrando em log é um dispositivo sem fio ou um gateway sem fio. Para ter mais informações, consulte [Visualizar entradas de log do AWS IoT Wireless no CloudWatch](cwl-format.md).  | 

## API de registro em log do AWS IoT Wireless
<a name="logging-api-roles"></a>

É possível usar as seguintes ações de API para configurar o registro em log de recursos. A tabela também exibe um exemplo de política do IAM que você precisa criar para usar as ações de API. A seção a seguir descreve como usar as APIs para configurar níveis de log de recursos.


**Ações de API de registro em log**  

| Nome da API | Descrição | Exemplo de política do IAM | 
| --- | --- | --- | 
|  [GetLogLevelsByResourceTypes](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_GetLogLevelsByResourceTypes.html)  |  Retorna os níveis de log padrão atuais ou os níveis de log por tipo de recurso, que podem incluir opções de log para dispositivos sem fio ou gateways sem fio.  | <pre>{    <br />    "Version": "2012-10-17",    <br />    "Statement": [        <br />        {            <br />            "Effect": "Allow",            <br />            "Action": [                <br />                 "iotwireless:GetLogLevelsByResourceTypes"            <br />            ],            <br />            "Resource": [                <br />                "*"            <br />            ]        <br />        }<br />    ]<br />}</pre>  | 
|  [GetResourceLogLevel](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_GetResourceLogLevel.html)  | Retorna a substituição em nível de log de um determinado identificador e tipo de recurso. O recurso pode ser um gateway sem fio ou um dispositivo sem fio.  | <pre>{    <br />    "Version": "2012-10-17",    <br />    "Statement": [        <br />        {            <br />            "Effect": "Allow",            <br />            "Action": [                <br />                 "iotwireless:GetResourceLogLevel"            <br />            ],            <br />            "Resource": [                <br />                 "arn:aws:iotwireless:us-east-1:123456789012:WirelessDevice/012bc537-ab12-cd3a-d00e-1f0e20c1204a",           <br />            ]        <br />        }<br />    ]<br />}</pre> | 
|  [PutResourceLogLevel](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_PutResourceLogLevel.html)  | Define a substituição em nível de log de um determinado identificador e tipo de recurso. O recurso pode ser um gateway sem fio ou um dispositivo sem fio.  Essa API tem um limite de 200 substituições em nível de log por conta.   | <pre>{    <br />    "Version": "2012-10-17",    <br />    "Statement": [        <br />        {            <br />            "Effect": "Allow",            <br />            "Action": [                <br />                 "iotwireless:PutResourceLogLevel"            <br />            ],            <br />            "Resource": [                <br />                "arn:aws:iotwireless:us-east-1:123456789012:WirelessDevice/012bc537-ab12-cd3a-d00e-1f0e20c1204a",            <br />            ]        <br />        }<br />    ]<br />}</pre> | 
|  [ResetAllResourceLogLevels](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_ResetAllResourceLogLevels.html)  |  Remove as substituições em nível de log de todos os recursos, o que inclui gateways sem fio e dispositivos sem fio.  Essa API não afeta os níveis de log definidos através da API `UpdateLogLevelsByResourceTypes`.   | <pre>{    <br />    "Version": "2012-10-17",    <br />    "Statement": [        <br />        {            <br />            "Effect": "Allow",            <br />            "Action": [                <br />                 "iotwireless:ResetAllResourceLogLevels"            <br />            ],            <br />            "Resource": [                <br />                "arn:aws:iotwireless:us-east-1:123456789012:WirelessDevice/*", <br />                "arn:aws:iotwireless:us-east-1:123456789012:WirelessGateway/*<br />            ]        <br />        }<br />    ]<br />}</pre> | 
|  [ResetResourceLogLevel](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_ResetResourceLogLevel.html)  |  Remove a substituição em nível de log de um determinado identificador e tipo de recurso. O recurso pode ser um gateway sem fio ou um dispositivo sem fio.  | <pre>{    <br />    "Version": "2012-10-17",    <br />    "Statement": [        <br />        {            <br />            "Effect": "Allow",            <br />            "Action": [                <br />                 "iotwireless:ResetResourceLogLevel"            <br />            ],            <br />            "Resource": [                <br />                "arn:aws:iotwireless:us-east-1:123456789012:WirelessDevice/012bc537-ab12-cd3a-d00e-1f0e20c1204a",            <br />            ]        <br />        }<br />    ]<br />}</pre> | 
|  [UpdateLogLevelsByResourceTypes](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_UpdateLogLevelsByResourceTypes.html)  |  Define o nível de log padrão ou níveis de log por tipo de recurso. É possível usar essa API para opções de log para dispositivos sem fio ou gateways sem fio e controlar as mensagens de log que serão exibidas no CloudWatch.  Os eventos são opcionais e o tipo de evento está atrelado ao tipo de recurso. Para ter mais informações, consulte [Tipos de eventos e recursos](cwl-format.md#cwl-format-events-resources).   | <pre>{    <br />    "Version": "2012-10-17",    <br />    "Statement": [        <br />        {            <br />            "Effect": "Allow",            <br />            "Action": [                <br />                 "iotwireless:UpdateLogLevelsByResourceTypes"            <br />            ],            <br />            "Resource": [                <br />                "*"            <br />            ]        <br />        }<br />    ]<br />}</pre> | 

## Configurar níveis de log de recursos usando a CLI
<a name="configure-logging-api"></a>

Esta seção descreve como configurar níveis de log para recursos do AWS IoT Wireless usando a API ou a AWS CLI.

**Antes de usar a CLI:**
+ Verifique se você criou a política do IAM para a API para a qual deseja executar o comando da CLI, conforme descrito anteriormente.
+ É necessário o nome do recurso da Amazon (ARN) do perfil que você deseja usar. Se precisar criar um perfil a ser usado para o registro em log, consulte [Criar um perfil e uma política de log para o AWS IoT Wireless](create-logging-role-policy.md). 

**Por que usar o AWS CLI**  
Por padrão, se criar um perfil do IAM, `IoTWirelessLogsRole`, como descrito em [Criar um perfil e uma política de log para o AWS IoT Wireless](create-logging-role-policy.md), você verá os logs do CloudWatch no Console de gerenciamento da AWS com nível de log padrão de `ERROR`. Para alterar o nível de log padrão para todos os recursos, ou para recursos específicos, use a API de registro em log AWS IoT Wireless ou a CLI.

**Como usar a AWS CLI**  
As ações de API podem ser categorizadas nos tipos a seguir, dependendo se você deseja configurar os níveis de log para todos os recursos ou para recursos específicos:
+ As ações de API `GetLogLevelsByResourceTypes` e `UpdateLogLevelsByResourceTypes` podem recuperar e atualizar os níveis de log de todos os recursos da sua conta que sejam de um tipo específico, como um gateway sem fio ou um dispositivo LoRaWAN ou Sidewalk.
+ As ações de API `GetResourceLogLevel`, `PutResourceLogLevel` e `ResetResourceLogLevel` podem recuperar, atualizar e redefinir os níveis de log de recursos individuais a serem especificados usando um identificador de recurso.
+ A ação de API `ResetAllResourceLogLevels` redefine a substituição em nível de log para `null` para todos os recursos para os quais você especificou uma substituição em nível de log usando a API `PutResourceLogLevel`.

**Como usar a CLI para configurar o registro em log de recursos específicos para o AWS IoT**
**nota**  
Também é possível executar esse procedimento com a API usando os métodos na API da AWS que correspondam aos comandos da CLI mostrados aqui. 

1. Por padrão, todos os recursos têm o nível de log definido como `ERROR`. Para definir os níveis de log padrão ou os níveis de log por tipos de recursos para todos os recursos da sua conta, use o comando [https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iotwireless/update-log-levels-by-resource-types.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iotwireless/update-log-levels-by-resource-types.html). O seguinte exemplo demonstra como você pode criar um arquivo JSON, `Input.json`, e usá-lo como uma entrada para o comando CLI. É possível usar esse comando para desativar seletivamente o registro em log ou substituir o nível de log padrão para tipos específicos de recursos e eventos.

   ```
   {
       "DefaultLogLevel": "INFO",
       "WirelessDeviceLogOptions": 
        [
           {
            "Type": "Sidewalk",
            "LogLevel": "INFO",
            "Events": 
             [
               {
                 "Event": "Registration",
                 "LogLevel": "DISABLED"
               }
             ]
           }, 
           {
            "Type": "LoRaWAN",
            "LogLevel": "INFO",
            "Events": 
             [
               {
                "Event": "Join",
                "LogLevel": "DISABLED"
               }, 
               {
                "Event": "Rejoin",
                "LogLevel": "ERROR"
               }
             ]
           }
         ]
        "WirelessGatewayLogOptions": 
         [
           {
            "Type": "LoRaWAN",
            "LogLevel": "INFO",
            "Events": 
             [
               {
                "Event": "CUPS_Request",
                "LogLevel": "DISABLED"
               }, 
               {
                 "Event": "Certificate",
                 "LogLevel": "ERROR"
               }
             ]
           }
         ]
   }
   ```

   onde:  
**WirelessDeviceLogOptions**  
A lista de opções de log de um dispositivo sem fio. Cada opção de log inclui o tipo de dispositivo sem fio (Sidewalk ou LoRaWAN) e uma lista de opções de log de eventos do dispositivo sem fio. Cada opção de log de eventos do dispositivo sem fio pode, opcionalmente, incluir o tipo de evento e seu nível de log.  
**WirelessGatewayLogOptions**  
A lista de opções de log de um gateway sem fio. Cada opção de log inclui o tipo de gateway sem fio (LoRaWAN) e uma lista de opções de log de eventos do gateway sem fio. Cada opção de log de eventos do gateway sem fio pode, opcionalmente, incluir o tipo de evento e seu nível de log.  
**DefaultLogLevel**  
O nível de log a ser usado para todos os seus recursos. Os valores válidos são: `ERROR`, `INFO` e `DISABLED`. O valor padrão é `INFO`.  
**LogLevel**  
O nível de log que você deseja usar para tipos de recursos e eventos individuais. Esses níveis de log substituem o nível de log padrão, como o nível de log `INFO` para o gateway LoRaWAN, e os níveis de log `DISABLED` e `ERROR` para os dois tipos de eventos.

   Execute o seguinte comando para fornecer o arquivo `Input.json` como entrada para o comando. Esse comando não retorna nenhuma saída.

   ```
   aws iotwireless update-log-levels-by-resource-types \ 
       --cli-input-json Input.json
   ```

   Se quiser remover as opções de log para dispositivos sem fio e gateways sem fio, execute o seguinte comando.

   ```
   {
       "DefaultLogLevel":"DISABLED",
       "WirelessDeviceLogOptions": [],
       "WireslessGatewayLogOptions":[]
   }
   ```

1. O comando **update-log-levels-by-resource-types** não retorna nenhuma saída. Use o comando [https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iotwireless/get-log-levels-by-resource-types.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iotwireless/get-log-levels-by-resource-types.html) para recuperar informações de registro em log específicas do recurso. O comando retorna o nível de log padrão e as opções de log do dispositivo sem fio e do gateway sem fio.
**nota**  
O comando **get-log-levels-by-resource-types** não pode recuperar diretamente os níveis de log no console do CloudWatch. Você pode usar o comando **get-log-levels-by-resource-types** para obter as informações mais recentes de nível de log especificadas para seus recursos usando o comando **update-log-levels-by-resource-types**.

   ```
   aws iotwireless get-log-levels-by-resource-types 
   ```

   Ao executar o comando a seguir, ele retorna as informações de registro em log mais recentes especificadas com **update-log-levels-by-resource-types**. Por exemplo, se você remover as opções de log do dispositivo sem fio, a execução de **get-log-levels-by-resource-types** retornará esse valor como `null`. 

   ```
   {
       "DefaultLogLevel": "INFO",
       "WirelessDeviceLogOptions": null,
        "WirelessGatewayLogOptions": 
         [
           {
            "Type": "LoRaWAN",
            "LogLevel": "INFO",
            "Events": 
             [
               {
                "Event": "CUPS_Request",
                "LogLevel": "DISABLED"
               }, 
               {
                 "Event": "Certificate",
                 "LogLevel": "ERROR"
               }
             ]
           }
         ]
   }
   ```

1. Para controlar níveis de log de gateways sem fio individuais ou recursos de dispositivos sem fio, utilize os seguintes comandos da CLI:
   + [https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iotwireless/put-resource-log-level.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iotwireless/put-resource-log-level.html)
   + [https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iotwireless/get-resource-log-level.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iotwireless/get-resource-log-level.html)
   + [https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iotwireless/reset-resource-log-level.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iotwireless/reset-resource-log-level.html)

   Por exemplo, ao usar essas CLIs, digamos que você tenha um grande número de dispositivos ou gateways sem fio em sua conta que estão sendo registrados. Se quiser solucionar erros em apenas alguns dos dispositivos sem fio, você pode desativar o registro em log de todos os dispositivos sem fio definindo o `DefaultLogLevel` como `DISABLED` e usar o **put-resource-log-level** para definir `LogLevel` como `ERROR` somente nesses dispositivos da sua conta.

   ```
   aws iotwireless put-resource-log-level \ 
       --resource-identifier 
       --resource-type WirelessDevice
       --log-level ERROR
   ```

   Neste exemplo, o comando define o nível de log como `ERROR` apenas para o recurso de dispositivo sem fio especificado e os logs de todos os outros recursos são desativados. Esse comando não retorna nenhuma saída. Para recuperar essas informações e verificar se os níveis de log foram definidos, use o comando **get-resource-log-level**.

1. Na etapa anterior, depois de depurar o problema e solucionar o erro, você pode executar o comando **reset-resource-log-level** para redefinir o nível de log desse recurso como `null`. Caso tenha usado o comando `put-resource-log-level` para definir a substituição de nível de log para mais de um recurso de gateway ou dispositivo sem fio, como para solucionar erros em vários dispositivos, você poderá redefinir as substituições em nível de log como `null` para todos esses recursos usando o comando [https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iotwireless/reset-all-resource-log-levels.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iotwireless/reset-all-resource-log-levels.html).

   ```
   aws iotwireless reset-all-resource-log-levels
   ```

   Esse comando não retorna nenhuma saída. Para recuperar as informações de registro em log dos recursos, execute o comando **get-resource-log-level**.

## Próximos Passos
<a name="configure-logging-next-steps"></a>

Você aprendeu a criar o perfil de registro em log e usar a API do AWS IoT Wireless para configurar o registro em log para seus recursos do AWS IoT Core for LoRaWAN. Em seguida, para aprender mais sobre como monitorar suas entradas de log , acesse [Monitorar o AWS IoT Wireless com o CloudWatch Logs](cloud-watch-logs.md).