@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.
Files changed (2) hide show
  1. package/README.md +30 -0
  2. 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
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gyramais/log-transport",
3
- "version": "0.5.1",
3
+ "version": "0.5.2",
4
4
  "description": "Entrega de log ao Loki e registro de excecao fatal para os servicos gyra-*",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",