lognerd 1.0.1 → 1.0.3
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 +5 -6
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/logger/logger.config.d.ts.map +1 -1
- package/dist/logger/logger.config.js +173 -48
- package/dist/logger/logger.config.js.map +1 -1
- package/dist/logger/logger.service.d.ts.map +1 -1
- package/dist/logger/logger.service.js +38 -43
- package/dist/logger/logger.service.js.map +1 -1
- package/dist/logger/logger.types.d.ts +2 -0
- package/dist/logger/logger.types.d.ts.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -77,9 +77,10 @@ Puedes configurar lognerd completamente mediante variables de entorno. Esto es i
|
|
|
77
77
|
| `LOGNERD_MAX_FILE_SIZE` | `VITE_LOGNERD_MAX_FILE_SIZE` | Tamaño máximo del archivo en MB | Número entero | `10` |
|
|
78
78
|
| `LOGNERD_MAX_FILES` | `VITE_LOGNERD_MAX_FILES` | Número máximo de archivos rotados | Número entero | `5` |
|
|
79
79
|
|
|
80
|
-
**Ejemplo para Node.js/Next.js:**
|
|
80
|
+
**Ejemplo para Node.js/Next.js (Backend):**
|
|
81
81
|
```bash
|
|
82
82
|
# .env
|
|
83
|
+
LOG_ENVIRONMENT=B
|
|
83
84
|
LOGNERD_LEVEL=INFO
|
|
84
85
|
LOGNERD_ENVIRONMENT=development
|
|
85
86
|
LOGNERD_ENABLE_CONSOLE=true
|
|
@@ -89,16 +90,14 @@ LOGNERD_MAX_FILE_SIZE=10
|
|
|
89
90
|
LOGNERD_MAX_FILES=5
|
|
90
91
|
```
|
|
91
92
|
|
|
92
|
-
**Ejemplo para Vite:**
|
|
93
|
+
**Ejemplo para Vite (Cliente/Navegador):**
|
|
93
94
|
```bash
|
|
94
95
|
# .env
|
|
96
|
+
VITE_LOG_ENVIRONMENT=C
|
|
95
97
|
VITE_LOGNERD_LEVEL=INFO
|
|
96
98
|
VITE_LOGNERD_ENVIRONMENT=development
|
|
97
99
|
VITE_LOGNERD_ENABLE_CONSOLE=true
|
|
98
|
-
VITE_LOGNERD_ENABLE_FILE
|
|
99
|
-
VITE_LOGNERD_FILE_PATH=./logs/app.log
|
|
100
|
-
VITE_LOGNERD_MAX_FILE_SIZE=10
|
|
101
|
-
VITE_LOGNERD_MAX_FILES=5
|
|
100
|
+
# VITE_LOGNERD_ENABLE_FILE se ignora en cliente (siempre false)
|
|
102
101
|
```
|
|
103
102
|
|
|
104
103
|
**Ejemplo para producción (Vite):**
|
package/dist/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { LoggerService } from './logger/logger.service';
|
|
2
2
|
import { createLoggerConfig } from './logger/logger.config';
|
|
3
|
-
import { LoggerConfig, LogLevel } from './logger/logger.types';
|
|
3
|
+
import { LoggerConfig, LogLevel, RuntimeEnvironment } from './logger/logger.types';
|
|
4
4
|
/**
|
|
5
5
|
* Crea una nueva instancia del logger con configuración personalizada
|
|
6
6
|
*/
|
|
@@ -21,6 +21,6 @@ export declare const logger: {
|
|
|
21
21
|
updateConfig: (config: Partial<LoggerConfig>) => void;
|
|
22
22
|
};
|
|
23
23
|
export { LoggerService };
|
|
24
|
-
export type { LoggerConfig, LogLevel };
|
|
24
|
+
export type { LoggerConfig, LogLevel, RuntimeEnvironment };
|
|
25
25
|
export { createLoggerConfig };
|
|
26
26
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAgBnF;;GAEG;AACH,eAAO,MAAM,YAAY,GAAI,SAAS,OAAO,CAAC,YAAY,CAAC,kBAG1D,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,eAAe,GAAI,QAAQ,OAAO,CAAC,YAAY,CAAC,KAAG,IAK/D,CAAC;AAGF,eAAO,MAAM,IAAI,GAAI,SAAS,MAAM,EAAE,OAAO,OAAO,KAAG,IAEtD,CAAC;AAEF,eAAO,MAAM,IAAI,GAAI,SAAS,MAAM,EAAE,OAAO,OAAO,KAAG,IAEtD,CAAC;AAEF,eAAO,MAAM,KAAK,GAAI,SAAS,MAAM,EAAE,OAAO,OAAO,KAAG,IAEvD,CAAC;AAEF,eAAO,MAAM,KAAK,GAAI,SAAS,MAAM,EAAE,OAAO,OAAO,KAAG,IAEvD,CAAC;AAGF,eAAO,MAAM,MAAM;oBAjBW,MAAM,SAAS,OAAO,KAAG,IAAI;oBAI7B,MAAM,SAAS,OAAO,KAAG,IAAI;qBAI5B,MAAM,SAAS,OAAO,KAAG,IAAI;qBAI7B,MAAM,SAAS,OAAO,KAAG,IAAI;2BAUnC,OAAO,CAAC,YAAY,CAAC;CAC7C,CAAC;AAGF,OAAO,EAAE,aAAa,EAAE,CAAC;AACzB,YAAY,EAAE,YAAY,EAAE,QAAQ,EAAE,kBAAkB,EAAE,CAAC;AAC3D,OAAO,EAAE,kBAAkB,EAAE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.config.d.ts","sourceRoot":"","sources":["../../src/logger/logger.config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAY,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"logger.config.d.ts","sourceRoot":"","sources":["../../src/logger/logger.config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAY,MAAM,gBAAgB,CAAC;AA2PxD,eAAO,MAAM,kBAAkB,GAC7B,eAAe,OAAO,CAAC,YAAY,CAAC,KACnC,YAgEF,CAAC"}
|
|
@@ -1,41 +1,71 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
-
var ownKeys = function(o) {
|
|
20
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
-
var ar = [];
|
|
22
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
-
return ar;
|
|
24
|
-
};
|
|
25
|
-
return ownKeys(o);
|
|
26
|
-
};
|
|
27
|
-
return function (mod) {
|
|
28
|
-
if (mod && mod.__esModule) return mod;
|
|
29
|
-
var result = {};
|
|
30
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
-
__setModuleDefault(result, mod);
|
|
32
|
-
return result;
|
|
33
|
-
};
|
|
34
|
-
})();
|
|
35
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
3
|
exports.createLoggerConfig = void 0;
|
|
37
|
-
|
|
38
|
-
const
|
|
4
|
+
// Detectar si estamos en Node.js o en el navegador
|
|
5
|
+
const isNode = typeof process !== 'undefined' && process.versions?.node !== undefined;
|
|
6
|
+
/**
|
|
7
|
+
* Detecta el entorno de ejecución (backend o client)
|
|
8
|
+
* Basado en LOG_ENVIRONMENT o detección automática
|
|
9
|
+
*/
|
|
10
|
+
const detectRuntimeEnvironment = () => {
|
|
11
|
+
// Intentar leer LOG_ENVIRONMENT desde variables de entorno
|
|
12
|
+
let envValue;
|
|
13
|
+
try {
|
|
14
|
+
if (typeof process !== 'undefined' && process.env) {
|
|
15
|
+
envValue = process.env.LOG_ENVIRONMENT || process.env.VITE_LOG_ENVIRONMENT;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
catch {
|
|
19
|
+
// process no disponible
|
|
20
|
+
}
|
|
21
|
+
// Si no está en process.env, intentar desde Vite
|
|
22
|
+
if (!envValue && !isNode) {
|
|
23
|
+
envValue = getViteEnv('LOG_ENVIRONMENT');
|
|
24
|
+
}
|
|
25
|
+
// Procesar el valor
|
|
26
|
+
if (envValue) {
|
|
27
|
+
const upperValue = envValue.trim().toUpperCase();
|
|
28
|
+
if (upperValue === 'B' || upperValue === 'BACKEND') {
|
|
29
|
+
return 'backend';
|
|
30
|
+
}
|
|
31
|
+
if (upperValue === 'C' || upperValue === 'CLIENT' || upperValue === 'CLIENTE') {
|
|
32
|
+
return 'client';
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
// Detección automática: si estamos en Node.js, asumimos backend
|
|
36
|
+
// Si no, asumimos client (navegador)
|
|
37
|
+
return isNode ? 'backend' : 'client';
|
|
38
|
+
};
|
|
39
|
+
// Función para obtener variables de entorno de Vite en tiempo de ejecución
|
|
40
|
+
// Vite inyecta import.meta.env en tiempo de compilación
|
|
41
|
+
const getViteEnv = (key) => {
|
|
42
|
+
try {
|
|
43
|
+
// Acceder a import.meta.env de forma segura
|
|
44
|
+
// En Vite, esto se reemplaza en tiempo de compilación
|
|
45
|
+
const meta = globalThis.__VITE_IMPORT_META__ ||
|
|
46
|
+
(typeof globalThis.import !== 'undefined' ?
|
|
47
|
+
globalThis.import.meta : null);
|
|
48
|
+
if (meta && meta.env && meta.env[key] !== undefined) {
|
|
49
|
+
return String(meta.env[key]);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
catch {
|
|
53
|
+
// Ignorar errores - no estamos en Vite o no está disponible
|
|
54
|
+
}
|
|
55
|
+
return undefined;
|
|
56
|
+
};
|
|
57
|
+
// Importaciones condicionales solo para Node.js
|
|
58
|
+
let fs = null;
|
|
59
|
+
let path = null;
|
|
60
|
+
if (isNode) {
|
|
61
|
+
try {
|
|
62
|
+
fs = require('fs');
|
|
63
|
+
path = require('path');
|
|
64
|
+
}
|
|
65
|
+
catch {
|
|
66
|
+
// Ignorar si no están disponibles
|
|
67
|
+
}
|
|
68
|
+
}
|
|
39
69
|
/**
|
|
40
70
|
* Lee una variable de entorno y la convierte a boolean
|
|
41
71
|
* Soporta tanto LOGNERD_* como VITE_LOGNERD_*
|
|
@@ -76,13 +106,44 @@ const getEnvLogLevel = (key, defaultValue) => {
|
|
|
76
106
|
* Vite solo expone variables que comienzan con VITE_ al código del cliente
|
|
77
107
|
*/
|
|
78
108
|
const getEnvValue = (key) => {
|
|
79
|
-
//
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
109
|
+
// Verificar si process existe antes de usarlo (evita errores en navegador)
|
|
110
|
+
let processEnv;
|
|
111
|
+
try {
|
|
112
|
+
if (typeof process !== 'undefined' && process.env) {
|
|
113
|
+
processEnv = process.env;
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
catch {
|
|
117
|
+
// process no está disponible (estamos en navegador)
|
|
118
|
+
processEnv = undefined;
|
|
83
119
|
}
|
|
84
|
-
//
|
|
85
|
-
|
|
120
|
+
// Para Node.js
|
|
121
|
+
if (isNode && processEnv) {
|
|
122
|
+
// Primero intentar con prefijo VITE_ (por si acaso)
|
|
123
|
+
const viteKey = `VITE_${key}`;
|
|
124
|
+
if (processEnv[viteKey] !== undefined) {
|
|
125
|
+
return processEnv[viteKey];
|
|
126
|
+
}
|
|
127
|
+
// Luego intentar sin prefijo
|
|
128
|
+
if (processEnv[key] !== undefined) {
|
|
129
|
+
return processEnv[key];
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
// Para Vite (navegador) - intentar obtener variables de Vite
|
|
133
|
+
// Solo si no estamos en Node.js
|
|
134
|
+
if (!isNode) {
|
|
135
|
+
const viteKey = `VITE_${key}`;
|
|
136
|
+
const viteValue = getViteEnv(viteKey);
|
|
137
|
+
if (viteValue !== undefined) {
|
|
138
|
+
return String(viteValue);
|
|
139
|
+
}
|
|
140
|
+
// También intentar sin prefijo
|
|
141
|
+
const directValue = getViteEnv(key);
|
|
142
|
+
if (directValue !== undefined) {
|
|
143
|
+
return String(directValue);
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
return undefined;
|
|
86
147
|
};
|
|
87
148
|
/**
|
|
88
149
|
* Lee la configuración desde variables de entorno
|
|
@@ -96,8 +157,22 @@ const getConfigFromEnv = () => {
|
|
|
96
157
|
config.level = getEnvLogLevel('LOGNERD_LEVEL', 'INFO');
|
|
97
158
|
}
|
|
98
159
|
// Entorno (compatible con NODE_ENV, LOGNERD_ENVIRONMENT y VITE_LOGNERD_ENVIRONMENT)
|
|
160
|
+
let nodeEnv;
|
|
161
|
+
try {
|
|
162
|
+
if (!isNode) {
|
|
163
|
+
// En el navegador, intentar obtener de Vite
|
|
164
|
+
nodeEnv = getViteEnv('MODE') || getViteEnv('NODE_ENV');
|
|
165
|
+
}
|
|
166
|
+
else if (typeof process !== 'undefined' && process.env) {
|
|
167
|
+
nodeEnv = process.env.NODE_ENV;
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
catch {
|
|
171
|
+
// Ignorar errores si process no está disponible
|
|
172
|
+
nodeEnv = undefined;
|
|
173
|
+
}
|
|
99
174
|
const environment = (getEnvValue('LOGNERD_ENVIRONMENT') ||
|
|
100
|
-
|
|
175
|
+
nodeEnv ||
|
|
101
176
|
'development');
|
|
102
177
|
if (environment === 'development' || environment === 'production') {
|
|
103
178
|
config.environment = environment;
|
|
@@ -129,36 +204,86 @@ const getConfigFromEnv = () => {
|
|
|
129
204
|
}
|
|
130
205
|
return config;
|
|
131
206
|
};
|
|
207
|
+
// Obtener el directorio de trabajo (solo en Node.js)
|
|
208
|
+
const getDefaultFilePath = () => {
|
|
209
|
+
if (isNode && path) {
|
|
210
|
+
try {
|
|
211
|
+
if (typeof process !== 'undefined' && process.cwd) {
|
|
212
|
+
return path.join(process.cwd(), 'logs', 'app.log');
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
catch {
|
|
216
|
+
// Fallback si process.cwd() no está disponible
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
// En el navegador, no podemos escribir archivos, así que retornamos una ruta relativa
|
|
220
|
+
return './logs/app.log';
|
|
221
|
+
};
|
|
132
222
|
const defaultConfig = {
|
|
133
223
|
level: 'INFO',
|
|
134
224
|
enableConsole: true,
|
|
135
225
|
enableFile: true,
|
|
136
|
-
filePath:
|
|
226
|
+
filePath: getDefaultFilePath(),
|
|
137
227
|
environment: 'development',
|
|
228
|
+
runtimeEnvironment: 'backend', // Se sobrescribirá con detectRuntimeEnvironment()
|
|
138
229
|
maxFileSize: 10, // 10MB
|
|
139
230
|
maxFiles: 5,
|
|
140
231
|
};
|
|
141
232
|
const createLoggerConfig = (customConfig) => {
|
|
233
|
+
// Detectar el entorno de ejecución primero
|
|
234
|
+
const runtimeEnv = detectRuntimeEnvironment();
|
|
142
235
|
// Primero leer desde variables de entorno
|
|
143
236
|
const envConfig = getConfigFromEnv();
|
|
144
237
|
// Combinar: defaults -> env -> customConfig (customConfig tiene prioridad)
|
|
145
238
|
const config = {
|
|
146
239
|
...defaultConfig,
|
|
240
|
+
runtimeEnvironment: runtimeEnv,
|
|
147
241
|
...envConfig,
|
|
148
242
|
...customConfig,
|
|
149
243
|
};
|
|
244
|
+
// Validar y ajustar según el entorno de ejecución
|
|
245
|
+
if (config.runtimeEnvironment === 'client') {
|
|
246
|
+
// En cliente (navegador), deshabilitar escritura de archivos
|
|
247
|
+
if (config.enableFile) {
|
|
248
|
+
console.warn('[lognerd] ⚠️ LOG_ENVIRONMENT está configurado para CLIENT (C). ' +
|
|
249
|
+
'La escritura de archivos está deshabilitada en el navegador. ' +
|
|
250
|
+
'Configure LOG_ENVIRONMENT=B para backend si necesita escribir archivos.');
|
|
251
|
+
config.enableFile = false;
|
|
252
|
+
}
|
|
253
|
+
}
|
|
254
|
+
else if (config.runtimeEnvironment === 'backend') {
|
|
255
|
+
// En backend, asegurar que tenemos acceso a fs
|
|
256
|
+
if (config.enableFile && !isNode) {
|
|
257
|
+
console.error('[lognerd] ❌ ERROR: LOG_ENVIRONMENT está configurado para BACKEND (B) ' +
|
|
258
|
+
'pero el código se está ejecutando en el navegador. ' +
|
|
259
|
+
'Configure LOG_ENVIRONMENT=C para cliente o corrija su configuración.');
|
|
260
|
+
config.enableFile = false;
|
|
261
|
+
}
|
|
262
|
+
}
|
|
150
263
|
// En producción, deshabilitar consola pero mantener archivo
|
|
151
264
|
// (solo si no se especificó explícitamente enableConsole)
|
|
152
265
|
if (config.environment === 'production' && customConfig?.enableConsole === undefined && envConfig.enableConsole === undefined) {
|
|
153
266
|
config.enableConsole = false;
|
|
154
267
|
config.enableFile = true;
|
|
155
268
|
}
|
|
156
|
-
// Asegurar que el directorio de logs existe
|
|
157
|
-
if (config.enableFile && config.filePath) {
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
fs.
|
|
269
|
+
// Asegurar que el directorio de logs existe (solo en Node.js)
|
|
270
|
+
if (config.enableFile && config.filePath && isNode && fs && path) {
|
|
271
|
+
try {
|
|
272
|
+
const logDir = path.dirname(config.filePath);
|
|
273
|
+
if (!fs.existsSync(logDir)) {
|
|
274
|
+
fs.mkdirSync(logDir, { recursive: true });
|
|
275
|
+
}
|
|
161
276
|
}
|
|
277
|
+
catch (error) {
|
|
278
|
+
// En el navegador, no podemos crear directorios, así que deshabilitamos el archivo
|
|
279
|
+
if (!isNode) {
|
|
280
|
+
config.enableFile = false;
|
|
281
|
+
}
|
|
282
|
+
}
|
|
283
|
+
}
|
|
284
|
+
else if (!isNode && config.enableFile) {
|
|
285
|
+
// En el navegador, deshabilitar escritura en archivo por defecto
|
|
286
|
+
config.enableFile = false;
|
|
162
287
|
}
|
|
163
288
|
return config;
|
|
164
289
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.config.js","sourceRoot":"","sources":["../../src/logger/logger.config.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"logger.config.js","sourceRoot":"","sources":["../../src/logger/logger.config.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.service.d.ts","sourceRoot":"","sources":["../../src/logger/logger.service.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"logger.service.d.ts","sourceRoot":"","sources":["../../src/logger/logger.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAsB,MAAM,gBAAgB,CAAC;AAmBlE,cAAM,aAAa;IACjB,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,SAAS,CAAkD;gBAEvD,MAAM,EAAE,YAAY;IAIhC,OAAO,CAAC,SAAS;IAMjB,OAAO,CAAC,WAAW;IAkCnB,OAAO,CAAC,qBAAqB;IA2B7B,OAAO,CAAC,gBAAgB;IA6BxB,OAAO,CAAC,GAAG;IAqBX,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,IAAI;IAI5C,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,IAAI;IAI3C,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,IAAI;IAI3C,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,IAAI;IAI5C,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,IAAI;CAGrD;AAED,OAAO,EAAE,aAAa,EAAE,CAAC"}
|
|
@@ -1,42 +1,21 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
-
var ownKeys = function(o) {
|
|
20
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
-
var ar = [];
|
|
22
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
-
return ar;
|
|
24
|
-
};
|
|
25
|
-
return ownKeys(o);
|
|
26
|
-
};
|
|
27
|
-
return function (mod) {
|
|
28
|
-
if (mod && mod.__esModule) return mod;
|
|
29
|
-
var result = {};
|
|
30
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
-
__setModuleDefault(result, mod);
|
|
32
|
-
return result;
|
|
33
|
-
};
|
|
34
|
-
})();
|
|
35
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
3
|
exports.LoggerService = void 0;
|
|
37
|
-
const fs = __importStar(require("fs"));
|
|
38
|
-
const path = __importStar(require("path"));
|
|
39
4
|
const logger_utils_1 = require("./logger.utils");
|
|
5
|
+
// Detectar si estamos en Node.js
|
|
6
|
+
const isNode = typeof process !== 'undefined' && process.versions?.node !== undefined;
|
|
7
|
+
// Importaciones condicionales solo para Node.js
|
|
8
|
+
let fs = null;
|
|
9
|
+
let path = null;
|
|
10
|
+
if (isNode) {
|
|
11
|
+
try {
|
|
12
|
+
fs = require('fs');
|
|
13
|
+
path = require('path');
|
|
14
|
+
}
|
|
15
|
+
catch {
|
|
16
|
+
// Ignorar si no están disponibles
|
|
17
|
+
}
|
|
18
|
+
}
|
|
40
19
|
class LoggerService {
|
|
41
20
|
constructor(config) {
|
|
42
21
|
this.logLevels = ['DEBUG', 'INFO', 'WARN', 'ERROR'];
|
|
@@ -51,6 +30,19 @@ class LoggerService {
|
|
|
51
30
|
if (!this.config.enableFile || !this.config.filePath) {
|
|
52
31
|
return;
|
|
53
32
|
}
|
|
33
|
+
// Validar que estamos en backend antes de escribir
|
|
34
|
+
if (this.config.runtimeEnvironment === 'client') {
|
|
35
|
+
// No intentar escribir en cliente
|
|
36
|
+
return;
|
|
37
|
+
}
|
|
38
|
+
// En el navegador, no podemos escribir archivos
|
|
39
|
+
if (!isNode || !fs) {
|
|
40
|
+
if (this.config.runtimeEnvironment === 'backend') {
|
|
41
|
+
console.error('[lognerd] ❌ ERROR: Intento de escribir archivo en backend pero fs no está disponible. ' +
|
|
42
|
+
'Verifique que LOG_ENVIRONMENT=B esté configurado correctamente.');
|
|
43
|
+
}
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
54
46
|
try {
|
|
55
47
|
const message = (0, logger_utils_1.formatFileMessage)(entry) + '\n';
|
|
56
48
|
fs.appendFileSync(this.config.filePath, message, 'utf8');
|
|
@@ -63,13 +55,13 @@ class LoggerService {
|
|
|
63
55
|
}
|
|
64
56
|
}
|
|
65
57
|
rotateLogFileIfNeeded() {
|
|
66
|
-
if (!this.config.filePath || !this.config.maxFileSize) {
|
|
58
|
+
if (!this.config.filePath || !this.config.maxFileSize || !isNode || !fs || !path) {
|
|
67
59
|
return;
|
|
68
60
|
}
|
|
69
61
|
try {
|
|
70
62
|
const stats = fs.statSync(this.config.filePath);
|
|
71
63
|
const fileSizeInMB = stats.size / (1024 * 1024);
|
|
72
|
-
if (fileSizeInMB >= this.config.maxFileSize) {
|
|
64
|
+
if (fileSizeInMB >= this.config.maxFileSize && path && fs) {
|
|
73
65
|
const logDir = path.dirname(this.config.filePath);
|
|
74
66
|
const logFileName = path.basename(this.config.filePath, '.log');
|
|
75
67
|
const timestamp = new Date().toISOString().replace(/[:.]/g, '-');
|
|
@@ -86,17 +78,20 @@ class LoggerService {
|
|
|
86
78
|
}
|
|
87
79
|
}
|
|
88
80
|
cleanOldLogFiles(logDir, logFileName) {
|
|
89
|
-
if (!this.config.maxFiles) {
|
|
81
|
+
if (!this.config.maxFiles || !isNode || !fs || !path) {
|
|
90
82
|
return;
|
|
91
83
|
}
|
|
92
84
|
try {
|
|
93
85
|
const files = fs.readdirSync(logDir)
|
|
94
86
|
.filter(file => file.startsWith(logFileName) && file.endsWith('.log'))
|
|
95
|
-
.map(file =>
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
87
|
+
.map(file => {
|
|
88
|
+
const filePath = path.join(logDir, file);
|
|
89
|
+
return {
|
|
90
|
+
name: file,
|
|
91
|
+
path: filePath,
|
|
92
|
+
time: fs.statSync(filePath).mtime.getTime(),
|
|
93
|
+
};
|
|
94
|
+
})
|
|
100
95
|
.sort((a, b) => b.time - a.time);
|
|
101
96
|
// Eliminar archivos que excedan el máximo
|
|
102
97
|
if (files.length > this.config.maxFiles) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.service.js","sourceRoot":"","sources":["../../src/logger/logger.service.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"logger.service.js","sourceRoot":"","sources":["../../src/logger/logger.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
export type LogLevel = 'ERROR' | 'WARN' | 'INFO' | 'DEBUG';
|
|
2
|
+
export type RuntimeEnvironment = 'backend' | 'client';
|
|
2
3
|
export interface LoggerConfig {
|
|
3
4
|
level: LogLevel;
|
|
4
5
|
enableConsole: boolean;
|
|
5
6
|
enableFile: boolean;
|
|
6
7
|
filePath?: string;
|
|
7
8
|
environment: 'development' | 'production';
|
|
9
|
+
runtimeEnvironment: RuntimeEnvironment;
|
|
8
10
|
maxFileSize?: number;
|
|
9
11
|
maxFiles?: number;
|
|
10
12
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.types.d.ts","sourceRoot":"","sources":["../../src/logger/logger.types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"logger.types.d.ts","sourceRoot":"","sources":["../../src/logger/logger.types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;AAC3D,MAAM,MAAM,kBAAkB,GAAG,SAAS,GAAG,QAAQ,CAAC;AAEtD,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,QAAQ,CAAC;IAChB,aAAa,EAAE,OAAO,CAAC;IACvB,UAAU,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,aAAa,GAAG,YAAY,CAAC;IAC1C,kBAAkB,EAAE,kBAAkB,CAAC;IACvC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,QAAQ;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,QAAQ,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB"}
|