> ## Documentation Index
> Fetch the complete documentation index at: https://docs.appsignal.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Logs

> Acompanhe e pesquise logs de aplicações no terminal, e gerencie métricas derivadas de logs e gatilhos baseados em logs.

O comando `logs` traz os logs da sua aplicação para o terminal: acompanhe-os à medida que chegam, pesquise em uma janela de tempo e gerencie as métricas derivadas de logs e gatilhos baseados em logs construídos a partir deles.

## Opções comuns

Cada comando `logs` identifica uma aplicação e usa sua organização padrão, a menos que você indique o contrário:

| Flag                  | Descrição                                                                                                          |
| --------------------- | ------------------------------------------------------------------------------------------------------------------ |
| `--app <name>`        | Nome da aplicação (adicione `--environment` quando mais de uma aplicação compartilhar o nome)                      |
| `--environment <env>` | Ambiente, usado com `--app`                                                                                        |
| `--app-id <id>`       | O ID da aplicação (uma string hexadecimal longa de `appsignal-cli apps list`), em vez de `--app` e `--environment` |
| `--org <slug>`        | Slug da organização (usa seu padrão se omitido)                                                                    |

## Acompanhar logs

Faça streaming das linhas de log à medida que chegam (a CLI consulta a cada segundo):

```sh Shell theme={null}
appsignal-cli logs tail --app "MyApp" --environment production
```

## Pesquisar logs

Pesquise linhas de log passadas e imprima as correspondências. Por exemplo, encontre linhas recentes de nível de erro:

```sh Shell theme={null}
appsignal-cli logs search --app "MyApp" --environment production --query "severity:error"
```

Por padrão, `search` retorna até 100 das correspondências mais recentes. Além das opções e filtros comuns, ele adiciona:

| Flag                | Descrição                                                                                         |
| ------------------- | ------------------------------------------------------------------------------------------------- |
| `--start <ISO8601>` | Horário de início, ex.: `2025-01-01T00:00:00Z`                                                    |
| `--end <ISO8601>`   | Horário de término                                                                                |
| `--limit <N>`       | Linhas máximas a retornar (máx. 100, também o padrão)                                             |
| `--order <ORDER>`   | `ASC` (mais antigas primeiro) ou `DESC` (mais recentes primeiro, o padrão)                        |
| `--page-all`        | Busca todas as linhas correspondentes na janela. Requer `--start`, e ignora `--limit` e `--order` |

Para obter todas as linhas em uma janela como JSON, para um script ou agente:

```sh Shell theme={null}
appsignal-cli --output json logs search --app "MyApp" --environment production \
  --start "2025-01-01T00:00:00Z" --query "severity:error" --page-all
```

## Filtros

`tail` e `search` compartilham estes filtros:

| Flag                  | Descrição                                                                                     |
| --------------------- | --------------------------------------------------------------------------------------------- |
| `--query <text>`      | Filtro de consulta de log, usando a [sintaxe de consulta](/logging/query-syntax) do AppSignal |
| `--severities <list>` | Severidades separadas por vírgula, ex.: `ERROR,CRITICAL`                                      |
| `--source-ids <list>` | IDs de fontes separados por vírgula                                                           |
| `--view <name-or-id>` | Aplica os filtros de uma visualização de log salva como padrões                               |

Liste as visualizações disponíveis para uma aplicação com `appsignal-cli logs views`, depois passe uma para `--view` por nome ou ID. Quaisquer outros filtros que você adicionar sobrescrevem os padrões salvos da visualização. Por exemplo, aplique uma visualização mas restrinja-a a linhas críticas:

```sh Shell theme={null}
appsignal-cli logs search --app "MyApp" --environment production \
  --view "Production errors" --severities CRITICAL
```

### Sintaxe de consulta

A flag `--query` usa a [sintaxe de consulta de log](/logging/query-syntax) do AppSignal. Padrões comuns:

* `severity=error`: correspondência exata de campo
* `message:timeout`: a mensagem contém "timeout"
* `group=notifiers`: correspondência exata de grupo
* `hostname:web-1`: o hostname contém "web-1"
* Termos separados por espaço combinam com `AND`; use `OR` para alternativas

Colchetes têm significado especial no analisador, então use aspas para correspondê-los literalmente: `message:"[Email]"`.

## Visualizações e fontes salvas

Liste as visualizações de log salvas de uma aplicação (predefinições de filtro) e suas fontes de log:

```sh Shell theme={null}
appsignal-cli logs views --app "MyApp" --environment production
appsignal-cli logs sources --app "MyApp" --environment production
```

Passe o nome ou ID de uma visualização para `--view`, e o ID de uma fonte para `--source-ids`.

## Métricas derivadas de logs

`logs metrics` transforma linhas de log correspondentes em métricas, com `list`, `create`, `update` e `delete`:

```sh Shell theme={null}
appsignal-cli logs metrics create --app "MyApp" --environment production \
  --name "Checkout latency" \
  --query "group:checkout" \
  --metric "name=log.checkout_duration_ms,type=distribution,field=duration_ms" \
  --source-id <SOURCE_ID>
```

`create` e `update` compartilham estas flags (`create` requer `--name`, `--query` e pelo menos um `--metric`):

| Flag               | Descrição                                                                                                     |
| ------------------ | ------------------------------------------------------------------------------------------------------------- |
| `--name <name>`    | Nome da configuração da métrica                                                                               |
| `--query <text>`   | Consulta que corresponde às linhas de log a serem medidas                                                     |
| `--metric <def>`   | Definição da métrica no formato `key=value` (repita para múltiplas), ex.: `name=log.error_count,type=counter` |
| `--source-id <id>` | Limita a um ID de fonte (repita para mais)                                                                    |

`update` pode receber as seguintes flags adicionais. As flags `--clear-*` esvaziam campos em vez de atualizá-los.

| Flag              | Descrição                                                   |
| ----------------- | ----------------------------------------------------------- |
| `--id <id>`       | A métrica a atualizar, de `logs metrics list` (obrigatório) |
| `--clear-metrics` | Remove todas as definições de métrica                       |
| `--clear-sources` | Remove todo o escopo de fontes                              |

`delete` aceita apenas `--id`.

<Note>
  Uma métrica derivada de log só começa a coletar dados depois de ser limitada a uma fonte de log, então passe `--source-id` (encontre IDs com `appsignal-cli logs sources`). A CLI não pode definir o filtro de severidade de uma métrica; se sua métrica precisar de um, defina o campo Severity na UI do app AppSignal após criá-la.
</Note>

## Gatilhos baseados em logs

`logs triggers` alerta sobre linhas de log correspondentes, com `list`, `create`, `update` e `delete`:

```sh Shell theme={null}
appsignal-cli logs triggers create --app "MyApp" --environment production \
  --name "Root login" \
  --query "message:root" \
  --severity ERROR \
  --notifier-id <NOTIFIER_ID>
```

`create` e `update` compartilham estas flags (`create` requer `--name` e `--query`):

| Flag                   | Descrição                                                 |
| ---------------------- | --------------------------------------------------------- |
| `--name <name>`        | Nome do gatilho                                           |
| `--query <text>`       | Consulta que corresponde às linhas de log para alertar    |
| `--severity <level>`   | Corresponde apenas a estas severidades (repita para mais) |
| `--notifier-id <id>`   | Anexa um notificador (repita para mais)                   |
| `--source-id <id>`     | Limita a um ID de fonte (repita para mais)                |
| `--description <text>` | Descrição do gatilho                                      |

`update` pode receber as seguintes flags adicionais. As flags `--clear-*` esvaziam campos em vez de atualizá-los.

| Flag                  | Descrição                                                    |
| --------------------- | ------------------------------------------------------------ |
| `--id <id>`           | O gatilho a atualizar, de `logs triggers list` (obrigatório) |
| `--clear-description` | Remove a descrição                                           |
| `--clear-notifiers`   | Remove todos os notificadores                                |
| `--clear-severities`  | Remove todas as severidades                                  |
| `--clear-sources`     | Remove todo o escopo de fontes                               |

`delete` aceita apenas `--id`.

<Note>
  Estes são gatilhos baseados em logs, construídos a partir de linhas de log. Para gatilhos de detecção de anomalias em métricas, veja [Gatilhos](/cli/triggers).
</Note>

## Próximos passos

Encontrou algo nos logs? Abra os [incidentes](/cli/incidents) relacionados, ou configure [gatilhos de detecção de anomalias](/cli/triggers).
