lognerd 0.1.0 → 1.0.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/README.md +82 -20
- package/dist/index.d.ts +18 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +51 -1
- package/dist/index.js.map +1 -1
- package/package.json +6 -2
package/README.md
CHANGED
|
@@ -16,15 +16,44 @@ npm install lognerd
|
|
|
16
16
|
|
|
17
17
|
## 📖 Uso Básico
|
|
18
18
|
|
|
19
|
+
### Uso Directo (Recomendado - Patrón Singleton)
|
|
20
|
+
|
|
21
|
+
Puedes usar el logger directamente sin necesidad de crear una instancia:
|
|
22
|
+
|
|
19
23
|
```typescript
|
|
20
|
-
import {
|
|
24
|
+
import { info, warn, error, debug } from 'lognerd';
|
|
25
|
+
|
|
26
|
+
// Uso directo - el logger se configura automáticamente desde variables de entorno
|
|
27
|
+
info('Aplicación iniciada');
|
|
28
|
+
error('Error crítico', { code: 500, message: 'Error de servidor' });
|
|
29
|
+
warn('Advertencia: conexión lenta');
|
|
30
|
+
debug('Información de debug', { userId: 123 });
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
O usando el objeto logger:
|
|
21
34
|
|
|
22
|
-
|
|
35
|
+
```typescript
|
|
36
|
+
import { logger } from 'lognerd';
|
|
23
37
|
|
|
24
38
|
logger.info('Aplicación iniciada');
|
|
25
|
-
logger.error('Error crítico', { code: 500
|
|
26
|
-
logger.warn('Advertencia
|
|
27
|
-
logger.debug('
|
|
39
|
+
logger.error('Error crítico', { code: 500 });
|
|
40
|
+
logger.warn('Advertencia');
|
|
41
|
+
logger.debug('Debug info');
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
### Uso con Instancia Personalizada
|
|
45
|
+
|
|
46
|
+
Si necesitas múltiples instancias con configuraciones diferentes:
|
|
47
|
+
|
|
48
|
+
```typescript
|
|
49
|
+
import { createLogger } from 'lognerd';
|
|
50
|
+
|
|
51
|
+
const customLogger = createLogger({
|
|
52
|
+
level: 'DEBUG',
|
|
53
|
+
filePath: './logs/custom.log',
|
|
54
|
+
});
|
|
55
|
+
|
|
56
|
+
customLogger.info('Mensaje con logger personalizado');
|
|
28
57
|
```
|
|
29
58
|
|
|
30
59
|
## ⚙️ Configuración
|
|
@@ -135,9 +164,10 @@ NODE_ENV=production LOGNERD_LEVEL=WARN
|
|
|
135
164
|
### Ejemplo Completo
|
|
136
165
|
|
|
137
166
|
```typescript
|
|
138
|
-
import {
|
|
167
|
+
import { info, warn, error, debug, configureLogger } from 'lognerd';
|
|
139
168
|
|
|
140
|
-
|
|
169
|
+
// Configurar el logger (opcional, se configura automáticamente desde variables de entorno)
|
|
170
|
+
configureLogger({
|
|
141
171
|
level: process.env.NODE_ENV === 'production' ? 'WARN' : 'DEBUG',
|
|
142
172
|
environment: process.env.NODE_ENV || 'development',
|
|
143
173
|
filePath: './logs/app.log',
|
|
@@ -146,39 +176,71 @@ const logger = createLogger({
|
|
|
146
176
|
// En desarrollo: se muestra en consola con colores y se guarda en archivo
|
|
147
177
|
// En producción: solo se guarda en archivo
|
|
148
178
|
|
|
149
|
-
|
|
150
|
-
|
|
179
|
+
info('Servidor iniciado en puerto 3000');
|
|
180
|
+
debug('Variables de entorno cargadas', { env: process.env.NODE_ENV });
|
|
151
181
|
|
|
152
182
|
try {
|
|
153
183
|
// Tu código aquí
|
|
154
|
-
|
|
155
|
-
} catch (
|
|
156
|
-
|
|
184
|
+
info('Operación exitosa');
|
|
185
|
+
} catch (err) {
|
|
186
|
+
error('Error en operación', { error: err.message, stack: err.stack });
|
|
157
187
|
}
|
|
158
188
|
```
|
|
159
189
|
|
|
160
190
|
### Actualizar Configuración en Tiempo de Ejecución
|
|
161
191
|
|
|
162
192
|
```typescript
|
|
163
|
-
|
|
193
|
+
import { configureLogger } from 'lognerd';
|
|
164
194
|
|
|
165
|
-
// Cambiar el nivel de log dinámicamente
|
|
166
|
-
|
|
195
|
+
// Cambiar el nivel de log dinámicamente del singleton
|
|
196
|
+
configureLogger({ level: 'ERROR' });
|
|
167
197
|
```
|
|
168
198
|
|
|
169
199
|
## 🔧 API
|
|
170
200
|
|
|
201
|
+
### Funciones Directas (Singleton)
|
|
202
|
+
|
|
203
|
+
El paquete exporta funciones directas que usan una instancia singleton del logger:
|
|
204
|
+
|
|
205
|
+
```typescript
|
|
206
|
+
import { info, warn, error, debug, logger, configureLogger } from 'lognerd';
|
|
207
|
+
|
|
208
|
+
// Funciones directas
|
|
209
|
+
info('Mensaje informativo');
|
|
210
|
+
warn('Advertencia');
|
|
211
|
+
error('Error', { code: 500 });
|
|
212
|
+
debug('Debug', { data: 'test' });
|
|
213
|
+
|
|
214
|
+
// Objeto logger (mismo singleton)
|
|
215
|
+
logger.info('Mensaje');
|
|
216
|
+
logger.warn('Advertencia');
|
|
217
|
+
|
|
218
|
+
// Configurar el singleton
|
|
219
|
+
configureLogger({ level: 'WARN', filePath: './logs/custom.log' });
|
|
220
|
+
```
|
|
221
|
+
|
|
171
222
|
### `createLogger(config?: Partial<LoggerConfig>): LoggerService`
|
|
172
223
|
|
|
173
|
-
Crea una instancia del logger con
|
|
224
|
+
Crea una nueva instancia del logger con configuración personalizada (útil para múltiples loggers).
|
|
174
225
|
|
|
175
|
-
### Métodos
|
|
226
|
+
### Métodos Disponibles
|
|
176
227
|
|
|
177
|
-
|
|
178
|
-
- `
|
|
228
|
+
**Funciones directas (singleton):**
|
|
229
|
+
- `info(message: string, data?: unknown): void` - Log informativo
|
|
230
|
+
- `warn(message: string, data?: unknown): void` - Log de advertencia
|
|
231
|
+
- `error(message: string, data?: unknown): void` - Log de error
|
|
232
|
+
- `debug(message: string, data?: unknown): void` - Log de debug
|
|
233
|
+
- `configureLogger(config: Partial<LoggerConfig>): void` - Actualizar configuración del singleton
|
|
234
|
+
|
|
235
|
+
**Objeto logger (singleton):**
|
|
179
236
|
- `logger.info(message: string, data?: unknown): void` - Log informativo
|
|
237
|
+
- `logger.warn(message: string, data?: unknown): void` - Log de advertencia
|
|
238
|
+
- `logger.error(message: string, data?: unknown): void` - Log de error
|
|
180
239
|
- `logger.debug(message: string, data?: unknown): void` - Log de debug
|
|
181
|
-
- `logger.updateConfig(
|
|
240
|
+
- `logger.updateConfig(config: Partial<LoggerConfig>): void` - Actualizar configuración
|
|
241
|
+
|
|
242
|
+
**Instancias personalizadas:**
|
|
243
|
+
- `logger.updateConfig(newConfig: Partial<LoggerConfig>): void` - Actualizar configuración (en instancias creadas con `createLogger`)
|
|
182
244
|
|
|
183
245
|
## 📦 Estructura de Archivos de Log
|
|
184
246
|
|
package/dist/index.d.ts
CHANGED
|
@@ -1,7 +1,25 @@
|
|
|
1
1
|
import { LoggerService } from './logger/logger.service';
|
|
2
2
|
import { createLoggerConfig } from './logger/logger.config';
|
|
3
3
|
import { LoggerConfig, LogLevel } from './logger/logger.types';
|
|
4
|
+
/**
|
|
5
|
+
* Crea una nueva instancia del logger con configuración personalizada
|
|
6
|
+
*/
|
|
4
7
|
export declare const createLogger: (config?: Partial<LoggerConfig>) => LoggerService;
|
|
8
|
+
/**
|
|
9
|
+
* Actualiza la configuración del logger singleton
|
|
10
|
+
*/
|
|
11
|
+
export declare const configureLogger: (config: Partial<LoggerConfig>) => void;
|
|
12
|
+
export declare const info: (message: string, data?: unknown) => void;
|
|
13
|
+
export declare const warn: (message: string, data?: unknown) => void;
|
|
14
|
+
export declare const error: (message: string, data?: unknown) => void;
|
|
15
|
+
export declare const debug: (message: string, data?: unknown) => void;
|
|
16
|
+
export declare const logger: {
|
|
17
|
+
info: (message: string, data?: unknown) => void;
|
|
18
|
+
warn: (message: string, data?: unknown) => void;
|
|
19
|
+
error: (message: string, data?: unknown) => void;
|
|
20
|
+
debug: (message: string, data?: unknown) => void;
|
|
21
|
+
updateConfig: (config: Partial<LoggerConfig>) => void;
|
|
22
|
+
};
|
|
5
23
|
export { LoggerService };
|
|
6
24
|
export type { LoggerConfig, LogLevel };
|
|
7
25
|
export { createLoggerConfig };
|
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,MAAM,uBAAuB,CAAC;AAgB/D;;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,CAAC;AACvC,OAAO,EAAE,kBAAkB,EAAE,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,13 +1,63 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.createLoggerConfig = exports.LoggerService = exports.createLogger = void 0;
|
|
3
|
+
exports.createLoggerConfig = exports.LoggerService = exports.logger = exports.debug = exports.error = exports.warn = exports.info = exports.configureLogger = exports.createLogger = void 0;
|
|
4
4
|
const logger_service_1 = require("./logger/logger.service");
|
|
5
5
|
Object.defineProperty(exports, "LoggerService", { enumerable: true, get: function () { return logger_service_1.LoggerService; } });
|
|
6
6
|
const logger_config_1 = require("./logger/logger.config");
|
|
7
7
|
Object.defineProperty(exports, "createLoggerConfig", { enumerable: true, get: function () { return logger_config_1.createLoggerConfig; } });
|
|
8
|
+
// Instancia singleton del logger
|
|
9
|
+
let loggerInstance = null;
|
|
10
|
+
/**
|
|
11
|
+
* Crea o retorna la instancia singleton del logger
|
|
12
|
+
*/
|
|
13
|
+
const getLogger = () => {
|
|
14
|
+
if (!loggerInstance) {
|
|
15
|
+
const config = (0, logger_config_1.createLoggerConfig)();
|
|
16
|
+
loggerInstance = new logger_service_1.LoggerService(config);
|
|
17
|
+
}
|
|
18
|
+
return loggerInstance;
|
|
19
|
+
};
|
|
20
|
+
/**
|
|
21
|
+
* Crea una nueva instancia del logger con configuración personalizada
|
|
22
|
+
*/
|
|
8
23
|
const createLogger = (config) => {
|
|
9
24
|
const loggerConfig = (0, logger_config_1.createLoggerConfig)(config);
|
|
10
25
|
return new logger_service_1.LoggerService(loggerConfig);
|
|
11
26
|
};
|
|
12
27
|
exports.createLogger = createLogger;
|
|
28
|
+
/**
|
|
29
|
+
* Actualiza la configuración del logger singleton
|
|
30
|
+
*/
|
|
31
|
+
const configureLogger = (config) => {
|
|
32
|
+
if (!loggerInstance) {
|
|
33
|
+
getLogger();
|
|
34
|
+
}
|
|
35
|
+
loggerInstance.updateConfig(config);
|
|
36
|
+
};
|
|
37
|
+
exports.configureLogger = configureLogger;
|
|
38
|
+
// Exportar métodos directos del logger singleton
|
|
39
|
+
const info = (message, data) => {
|
|
40
|
+
getLogger().info(message, data);
|
|
41
|
+
};
|
|
42
|
+
exports.info = info;
|
|
43
|
+
const warn = (message, data) => {
|
|
44
|
+
getLogger().warn(message, data);
|
|
45
|
+
};
|
|
46
|
+
exports.warn = warn;
|
|
47
|
+
const error = (message, data) => {
|
|
48
|
+
getLogger().error(message, data);
|
|
49
|
+
};
|
|
50
|
+
exports.error = error;
|
|
51
|
+
const debug = (message, data) => {
|
|
52
|
+
getLogger().debug(message, data);
|
|
53
|
+
};
|
|
54
|
+
exports.debug = debug;
|
|
55
|
+
// Exportar también el logger singleton completo
|
|
56
|
+
exports.logger = {
|
|
57
|
+
info: exports.info,
|
|
58
|
+
warn: exports.warn,
|
|
59
|
+
error: exports.error,
|
|
60
|
+
debug: exports.debug,
|
|
61
|
+
updateConfig: (config) => (0, exports.configureLogger)(config),
|
|
62
|
+
};
|
|
13
63
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,4DAAwD;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,4DAAwD;AA+D/C,8FA/DA,8BAAa,OA+DA;AA9DtB,0DAA4D;AAgEnD,mGAhEA,kCAAkB,OAgEA;AA7D3B,iCAAiC;AACjC,IAAI,cAAc,GAAyB,IAAI,CAAC;AAEhD;;GAEG;AACH,MAAM,SAAS,GAAG,GAAkB,EAAE;IACpC,IAAI,CAAC,cAAc,EAAE,CAAC;QACpB,MAAM,MAAM,GAAG,IAAA,kCAAkB,GAAE,CAAC;QACpC,cAAc,GAAG,IAAI,8BAAa,CAAC,MAAM,CAAC,CAAC;IAC7C,CAAC;IACD,OAAO,cAAc,CAAC;AACxB,CAAC,CAAC;AAEF;;GAEG;AACI,MAAM,YAAY,GAAG,CAAC,MAA8B,EAAE,EAAE;IAC7D,MAAM,YAAY,GAAG,IAAA,kCAAkB,EAAC,MAAM,CAAC,CAAC;IAChD,OAAO,IAAI,8BAAa,CAAC,YAAY,CAAC,CAAC;AACzC,CAAC,CAAC;AAHW,QAAA,YAAY,gBAGvB;AAEF;;GAEG;AACI,MAAM,eAAe,GAAG,CAAC,MAA6B,EAAQ,EAAE;IACrE,IAAI,CAAC,cAAc,EAAE,CAAC;QACpB,SAAS,EAAE,CAAC;IACd,CAAC;IACD,cAAe,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;AACvC,CAAC,CAAC;AALW,QAAA,eAAe,mBAK1B;AAEF,iDAAiD;AAC1C,MAAM,IAAI,GAAG,CAAC,OAAe,EAAE,IAAc,EAAQ,EAAE;IAC5D,SAAS,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;AAClC,CAAC,CAAC;AAFW,QAAA,IAAI,QAEf;AAEK,MAAM,IAAI,GAAG,CAAC,OAAe,EAAE,IAAc,EAAQ,EAAE;IAC5D,SAAS,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;AAClC,CAAC,CAAC;AAFW,QAAA,IAAI,QAEf;AAEK,MAAM,KAAK,GAAG,CAAC,OAAe,EAAE,IAAc,EAAQ,EAAE;IAC7D,SAAS,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;AACnC,CAAC,CAAC;AAFW,QAAA,KAAK,SAEhB;AAEK,MAAM,KAAK,GAAG,CAAC,OAAe,EAAE,IAAc,EAAQ,EAAE;IAC7D,SAAS,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;AACnC,CAAC,CAAC;AAFW,QAAA,KAAK,SAEhB;AAEF,gDAAgD;AACnC,QAAA,MAAM,GAAG;IACpB,IAAI,EAAJ,YAAI;IACJ,IAAI,EAAJ,YAAI;IACJ,KAAK,EAAL,aAAK;IACL,KAAK,EAAL,aAAK;IACL,YAAY,EAAE,CAAC,MAA6B,EAAE,EAAE,CAAC,IAAA,uBAAe,EAAC,MAAM,CAAC;CACzE,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "lognerd",
|
|
3
|
-
"version": "0.1
|
|
3
|
+
"version": "1.0.1",
|
|
4
4
|
"description": "Sistema de logging con colores y escritura a archivo",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -29,6 +29,9 @@
|
|
|
29
29
|
"peerDependencies": {
|
|
30
30
|
"typescript": "^5.0.0"
|
|
31
31
|
},
|
|
32
|
+
"engines": {
|
|
33
|
+
"node": ">=16.0.0"
|
|
34
|
+
},
|
|
32
35
|
"files": [
|
|
33
36
|
"dist",
|
|
34
37
|
"README.md"
|
|
@@ -37,6 +40,7 @@
|
|
|
37
40
|
"build": "tsc",
|
|
38
41
|
"dev": "tsc --watch",
|
|
39
42
|
"test": "ts-node test-logger.ts",
|
|
40
|
-
"test:env": "ts-node test-env.ts"
|
|
43
|
+
"test:env": "ts-node test-env.ts",
|
|
44
|
+
"test:singleton": "ts-node test-singleton.ts"
|
|
41
45
|
}
|
|
42
46
|
}
|