@gyramais/log-transport 0.5.1 → 0.5.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +30 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -77,6 +77,36 @@ Toda configuração entra por parâmetro. Três razões, em ordem de peso:
|
|
|
77
77
|
Quem lê env é o serviço, no entrypoint. Há um teste que compila o pacote com
|
|
78
78
|
`removeComments` e falha se `process.env` aparecer no código emitido.
|
|
79
79
|
|
|
80
|
+
## Armadilha do Nest: `warn` com objeto apaga o `context`
|
|
81
|
+
|
|
82
|
+
Não é deste pacote — é a assinatura do Nest, `error(message, stack?, context?)` contra
|
|
83
|
+
`warn(message, context?)`. O 2º argumento cai em slots diferentes antes de chegar ao
|
|
84
|
+
transporte, e o pacote preserva esse comportamento de propósito (o `formatMeta` é o
|
|
85
|
+
mesmo da fonte):
|
|
86
|
+
|
|
87
|
+
```json
|
|
88
|
+
// logger.warn('marcador', { scrId }) -> o objeto OCUPA context; o nome da classe some
|
|
89
|
+
{"context":{"scrId":"..."},"level":"warn","message":"marcador"}
|
|
90
|
+
|
|
91
|
+
// logger.error('marcador', { scrId }) -> vai para stack; context sobrevive
|
|
92
|
+
{"context":"SCRPlugin","level":"error","message":"marcador","stack":[{"scrId":"..."}]}
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
A consequência é na **consulta**, não na entrega: painel ou alerta que filtra por
|
|
96
|
+
`context` deixa de achar marcadores emitidos com `warn` + objeto.
|
|
97
|
+
|
|
98
|
+
Antes de adotar num serviço, procure quem já faz isso:
|
|
99
|
+
|
|
100
|
+
```bash
|
|
101
|
+
grep -rn "logger\.warn(" src --include="*.ts" | grep ","
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
O padrão que funciona igual no formato local e no JSON é **logfmt dentro da mensagem**:
|
|
105
|
+
|
|
106
|
+
```ts
|
|
107
|
+
logger.warn(`scr-hbi-no-data scrId=${scrId} yearMonth=${yearMonth}`);
|
|
108
|
+
```
|
|
109
|
+
|
|
80
110
|
## Detalhes que não são arbitrários
|
|
81
111
|
|
|
82
112
|
- **`service` é obrigatório no tipo.** O `gyra-nest-boilerplate` rotula hoje
|