lhisp-logger 3.1.11 → 3.2.1

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lhisp-logger",
3
- "version": "3.1.11",
3
+ "version": "3.2.1",
4
4
  "description": "",
5
5
  "main": "src/lhisp-logger",
6
6
  "types": "src/lhisp-logger.d.ts",
@@ -35,20 +35,27 @@ function getEtcHostname() {
35
35
  }
36
36
  const level = process.env.LOG_LEVEL || "info";
37
37
  const targets = [];
38
- targets.push({
39
- level,
40
- target: "pino-pretty",
41
- options: {
42
- colorize: true,
43
- ignore: "pid,hostname",
44
- translateTime: "yyyy-mm-dd HH:MM:ss",
45
- singleLine: true,
46
- },
47
- });
48
38
  const appName = (0, getHostPackageName_1.getHostPackageName)() || "lhisp-app";
49
39
  const isCI = process.env.CI === "true" || process.env.CI === "1";
50
40
  const isJest = !!process.env.JEST_WORKER_ID;
51
- const lokiEnabled = (process.env.LOG_LOKI_ENABLED || "true").toLowerCase() === "true" && !isCI && !isJest;
41
+ const isProduction = process.env.NODE_ENV === "production";
42
+ // Cada target do pino.transport() sobe uma worker thread com isolate V8 proprio.
43
+ // Em producao nao queremos nenhuma: o stdout ja e capturado pelo driver de log do
44
+ // Docker, que tem rotacao configurada. Ambos os targets sao opt-in via env.
45
+ const prettyEnabled = (process.env.LOG_PRETTY || (isProduction ? "false" : "true")).toLowerCase() === "true";
46
+ const lokiEnabled = (process.env.LOG_LOKI_ENABLED || "false").toLowerCase() === "true" && !isCI && !isJest;
47
+ if (prettyEnabled) {
48
+ targets.push({
49
+ level,
50
+ target: "pino-pretty",
51
+ options: {
52
+ colorize: true,
53
+ ignore: "pid,hostname",
54
+ translateTime: "yyyy-mm-dd HH:MM:ss",
55
+ singleLine: true,
56
+ },
57
+ });
58
+ }
52
59
  const lokiSilenceErrors = (process.env.LOG_LOKI_SILENCE_ERRORS || "true").toLowerCase() === "true";
53
60
  if (lokiEnabled) {
54
61
  const lokiUrl = process.env.LOG_LOKI_URL ||
@@ -71,13 +78,15 @@ if (lokiEnabled) {
71
78
  },
72
79
  });
73
80
  }
74
- const name = process.env.LOG_NAME || undefined;
75
- const transport = pino_1.default.transport({ targets });
81
+ // Sem nenhum target nao chamamos pino.transport(): uma lista vazia ainda sobe a
82
+ // worker thread do thread-stream. Sem transport o pino escreve NDJSON direto no
83
+ // stdout, no proprio processo.
84
+ const transport = targets.length ? pino_1.default.transport({ targets }) : undefined;
76
85
  const serializeError = (error) => {
77
86
  const base = (0, isAxiosError_1.isAxiosError)(error) ? (0, axiosErrorSerializer_1.axiosErrorSerializer)(error) : pino_1.default.stdSerializers.err(error);
78
87
  return (0, deepSerializeAxiosErrors_1.deepSerializeAxiosErrors)(base);
79
88
  };
80
- const logger = (0, pino_1.default)({
89
+ const pinoOptions = {
81
90
  name: appName,
82
91
  level,
83
92
  hooks: {
@@ -97,7 +106,8 @@ const logger = (0, pino_1.default)({
97
106
  return (0, deepSerializeAxiosErrors_1.deepSerializeAxiosErrors)(obj);
98
107
  },
99
108
  },
100
- }, transport);
109
+ };
110
+ const logger = transport ? (0, pino_1.default)(pinoOptions, transport) : (0, pino_1.default)(pinoOptions);
101
111
  exports.default = logger;
102
112
  __exportStar(require("./axiosErrorSerializer"), exports);
103
113
  __exportStar(require("./deepSerializeAxiosErrors"), exports);
@@ -1,7 +1,9 @@
1
1
  export interface Logger {
2
2
  child: (params: any) => Logger;
3
+ trace: Console["trace"];
4
+ debug: Console["debug"];
3
5
  info: Console["info"];
4
6
  warn: Console["warn"];
5
7
  error: Console["error"];
6
- debug: Console["debug"];
8
+ fatal: Console["error"];
7
9
  }