npm package: @rediseg/logger
Description: Logger com Winston e integração com New Relic para funções serverless da Rediseg
Author: Gustavo Oliveira Mendonça
Latest version: 1.7.0

# @rediseg/logger

Logger com Winston + New Relic para funções Lambda usando o framework Serverless.

> Criado para a Rediseg como biblioteca de logging observável com suporte a `noticeError`.

## 🚀 Instalação

```bash
npm install @rediseg/logger
```

## 🔗 Uso local com `npm link`

Se quiser testar a lib localmente **sem publicar**:

1. Dentro da pasta da lib:

```bash
npm install
npm run build
npm link
```

2. No projeto onde deseja testar:

```bash
npm link @rediseg/logger
```

3. Para desfazer o link:

```bash
npm unlink @rediseg/logger
npm uninstall @rediseg/logger
```

## 🛠 Uso

```ts
import { redisegLogger } from "@rediseg/logger";

redisegLogger.info("Iniciando função Lambda");
redisegLogger.debug("Dados recebidos", { data });
redisegLogger.warn("Configuração ausente");
redisegLogger.error(new Error("Falha ao processar evento"), { eventId: "123" });
```

> Qualquer log com nível `error` também será reportado automaticamente ao New Relic via `noticeError`, a menos que desabilitado por variável de ambiente.

## 🌍 Variáveis de ambiente

| Variável                             | Obrigatório? | Default                           | Descrição                                                                                                 |
| ------------------------------------ | ------------ | --------------------------------- | --------------------------------------------------------------------------------------------------------- |
| `NEW_RELIC_ENABLED`                  | não          | 'false'                           | Indica se logs devem ser enviados para o NewRelic                                                         |
| `NEW_RELIC_LICENSE_KEY`              | sim          |                                   | Chave de licença do New Relic (obrigatória para envio de métricas)                                        |
| `NEW_RELIC_APP_NAME`                 | sim          |                                   | Nome da aplicação que aparece no New Relic                                                                |
| `NEW_RELIC_NO_CONFIG_FILE`           | não          | 'false'                           | Use `true` se não quiser usar `newrelic.js`                                                               |
| `NEW_RELIC_LOG_ENABLED`              | não          | 'true' (false in serverless_mode) | Ativa logs do agente do New Relic (`true` para debug)                                                     |
| `REDISEG_LOGGER_LOG_LEVEL`           | não          | 'info'                            | Nível de log da aplicação (`debug`, `info`, `warn`, `error`, etc.)                                        |
| `REDISEG_LOGGER_DEBUG`               | não          | 'false'                           | Habilita debug                                                                                            |
| `REDISEG_LOGGER_NOTICE_ERRORS`       | não          | 'true'                            | `true` (default) para chamar `noticeError`; `false` para não notificar                                    |
| `REDISEG_LOGGER_CONSOLE_LOG_ENABLED` | não          | 'true'                            | Ativa/desativa log no console. É possível usar apenas o transporte do NewRelic e economizar no CloudWatch |
| `REDISEG_LOGGER_SHOW_TIMESTAMPS`     | não          | 'true'                            | Mostra timestamps nas mensagens de log no console                                                         |
| `REDISEG_LOGGER_TIMESTAMP_FORMAT`    | não          | YYYY-MM-DD hh:mm:ss.SSSA          | Formato a ser aplicado quando `REDISEG_LOGGER_SHOW_TIMESTAMPS=true`                                       |
| `REDISEG_LOGGER_PRETTIFY_DETAILS`    | não          | 'false'                           | Imprime objetos JSON identados                                                                            |

## 🧪 Desenvolvimento

```bash
npm install
npm run build
```

## 📦 Publicação

```bash
export NPM_TOKEN='insira seu tokennpm'
npm publish --access public
```

## 📝 Licença

MIT - Rediseg