@mks2508/better-logger 2.1.0 → 3.0.0
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/.claude/settings.local.json +6 -1
- package/CHANGELOG.json +93 -1
- package/CHANGELOG.md +127 -0
- package/CLAUDE.md +14 -1
- package/README.md +111 -20
- package/dist/Logger.d.ts +205 -58
- package/dist/Logger.d.ts.map +1 -1
- package/dist/ScopedLogger.d.ts +23 -276
- package/dist/ScopedLogger.d.ts.map +1 -1
- package/dist/chunks/Logger-BCfx_yCK.js +2 -0
- package/dist/chunks/Logger-BCfx_yCK.js.map +1 -0
- package/dist/chunks/{Logger-B7L-ujY4.js → Logger-C126NTrD.js} +862 -96
- package/dist/chunks/Logger-C126NTrD.js.map +1 -0
- package/dist/exports-module.d.ts +1 -1
- package/dist/exports-module.d.ts.map +1 -1
- package/dist/exports.cjs +1 -1
- package/dist/exports.js +1 -1
- package/dist/hooks/HookManager.d.ts +21 -0
- package/dist/hooks/HookManager.d.ts.map +1 -0
- package/dist/hooks/index.d.ts +2 -0
- package/dist/hooks/index.d.ts.map +1 -0
- package/dist/index.cjs +1 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +23 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +240 -9
- package/dist/index.js.map +1 -1
- package/dist/serializers/SerializerRegistry.d.ts +16 -0
- package/dist/serializers/SerializerRegistry.d.ts.map +1 -0
- package/dist/serializers/index.d.ts +2 -0
- package/dist/serializers/index.d.ts.map +1 -0
- package/dist/styling/StyleCache.d.ts +42 -0
- package/dist/styling/StyleCache.d.ts.map +1 -0
- package/dist/styling-module.d.ts +1 -1
- package/dist/styling-module.d.ts.map +1 -1
- package/dist/styling.cjs +1 -1
- package/dist/styling.js +2 -2
- package/dist/transports/ConsoleTransport.d.ts +9 -0
- package/dist/transports/ConsoleTransport.d.ts.map +1 -0
- package/dist/transports/FileTransport.d.ts +15 -0
- package/dist/transports/FileTransport.d.ts.map +1 -0
- package/dist/transports/HttpTransport.d.ts +16 -0
- package/dist/transports/HttpTransport.d.ts.map +1 -0
- package/dist/transports/TransportManager.d.ts +14 -0
- package/dist/transports/TransportManager.d.ts.map +1 -0
- package/dist/transports/index.d.ts +5 -0
- package/dist/transports/index.d.ts.map +1 -0
- package/dist/types/core.d.ts +38 -0
- package/dist/types/core.d.ts.map +1 -1
- package/dist/types/hooks.d.ts +36 -0
- package/dist/types/hooks.d.ts.map +1 -0
- package/dist/types/index.d.ts +5 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/serializers.d.ts +25 -0
- package/dist/types/serializers.d.ts.map +1 -0
- package/dist/types/transports.d.ts +47 -0
- package/dist/types/transports.d.ts.map +1 -0
- package/docs/API.md +227 -0
- package/package.json +1 -1
- package/packages/core/package.json +1 -1
- package/src/Logger.ts +391 -102
- package/src/ScopedLogger.ts +78 -318
- package/src/hooks/HookManager.ts +177 -0
- package/src/hooks/index.ts +1 -0
- package/src/index.ts +77 -2
- package/src/serializers/SerializerRegistry.ts +173 -0
- package/src/serializers/index.ts +1 -0
- package/src/styling/StyleCache.ts +131 -0
- package/src/transports/ConsoleTransport.ts +28 -0
- package/src/transports/FileTransport.ts +53 -0
- package/src/transports/HttpTransport.ts +56 -0
- package/src/transports/TransportManager.ts +130 -0
- package/src/transports/index.ts +4 -0
- package/src/types/core.ts +46 -0
- package/src/types/hooks.ts +45 -0
- package/src/types/index.ts +39 -1
- package/src/types/serializers.ts +30 -0
- package/src/types/transports.ts +52 -0
- package/dist/chunks/Logger-B7L-ujY4.js.map +0 -1
- package/dist/chunks/Logger-DzU_c5sX.js +0 -2
- package/dist/chunks/Logger-DzU_c5sX.js.map +0 -1
- package/dist/chunks/ScopedLogger-BY3-E8Ov.js +0 -2
- package/dist/chunks/ScopedLogger-BY3-E8Ov.js.map +0 -1
- package/dist/chunks/ScopedLogger-D-RbiFZn.js +0 -361
- package/dist/chunks/ScopedLogger-D-RbiFZn.js.map +0 -1
package/dist/Logger.d.ts
CHANGED
|
@@ -1,4 +1,8 @@
|
|
|
1
|
-
import { LogLevel, Verbosity, ThemeVariant, BannerType, LoggerConfig, ILogHandler, StyleOptions } from './types/index.js';
|
|
1
|
+
import { LogLevel, Verbosity, ThemeVariant, BannerType, LoggerConfig, ILogHandler, StyleOptions, Bindings, SerializerFn, HookEvent, HookCallback, MiddlewareFn, TransportTarget } from './types/index.js';
|
|
2
|
+
import { SerializerRegistry } from './serializers/index.js';
|
|
3
|
+
import { HookManager } from './hooks/index.js';
|
|
4
|
+
import { TransportManager } from './transports/index.js';
|
|
5
|
+
import { ScopedLogger, APILogger, ComponentLogger } from './ScopedLogger.js';
|
|
2
6
|
import { ExportLogHandler } from './handlers/index.js';
|
|
3
7
|
/**
|
|
4
8
|
* Clase principal Logger con capacidades avanzadas de logging
|
|
@@ -35,7 +39,11 @@ export declare class Logger {
|
|
|
35
39
|
private exportHandler?;
|
|
36
40
|
private cliProcessor?;
|
|
37
41
|
private themeChangeListener?;
|
|
42
|
+
private badgeList;
|
|
38
43
|
private displaySettings;
|
|
44
|
+
private serializerRegistry;
|
|
45
|
+
private hookManager;
|
|
46
|
+
private transportManager?;
|
|
39
47
|
/**
|
|
40
48
|
* Crea una nueva instancia del Logger
|
|
41
49
|
*
|
|
@@ -156,14 +164,6 @@ export declare class Logger {
|
|
|
156
164
|
* @since 0.3.0
|
|
157
165
|
*/
|
|
158
166
|
cleanup(): void;
|
|
159
|
-
/**
|
|
160
|
-
* Factory method para crear loggers con scope evitando dependencias circulares
|
|
161
|
-
* @private
|
|
162
|
-
* @param {string} type - Tipo de logger ('scope' | 'api' | 'component')
|
|
163
|
-
* @param {string} name - Nombre del scope
|
|
164
|
-
* @returns {Promise<any>} Logger con scope
|
|
165
|
-
*/
|
|
166
|
-
private createScopedLogger;
|
|
167
167
|
/**
|
|
168
168
|
* Aplica un preset inteligente - funciona perfectamente sin configuración
|
|
169
169
|
*
|
|
@@ -256,58 +256,44 @@ export declare class Logger {
|
|
|
256
256
|
*/
|
|
257
257
|
showBadges(): void;
|
|
258
258
|
/**
|
|
259
|
-
*
|
|
259
|
+
* Establece múltiples badges para los logs
|
|
260
260
|
*
|
|
261
|
-
* @param {string}
|
|
262
|
-
* @returns {
|
|
261
|
+
* @param {string[]} badges - Array de badges a mostrar
|
|
262
|
+
* @returns {this} Logger instance para encadenamiento
|
|
263
263
|
*
|
|
264
264
|
* @example
|
|
265
|
-
*
|
|
266
|
-
*
|
|
267
|
-
* // [COMPONENT] [Autenticación] Validando credenciales
|
|
265
|
+
* logger.badges(['v3', 'stable']).info('Release publicado');
|
|
266
|
+
* logger.badges(['API', 'v2']).warn('Endpoint deprecado');
|
|
268
267
|
*
|
|
269
|
-
*
|
|
270
|
-
* // [COMPONENT] [Autenticación] ✓ Usuario autenticado
|
|
271
|
-
*
|
|
272
|
-
* @since 0.3.0
|
|
268
|
+
* @since 3.0.0
|
|
273
269
|
*/
|
|
274
|
-
|
|
270
|
+
badges(badges: string[]): this;
|
|
275
271
|
/**
|
|
276
|
-
*
|
|
272
|
+
* Añade un badge individual a la lista
|
|
277
273
|
*
|
|
278
|
-
* @param {string}
|
|
279
|
-
* @returns {
|
|
274
|
+
* @param {string} badge - Badge a añadir
|
|
275
|
+
* @returns {this} Logger instance para encadenamiento
|
|
280
276
|
*
|
|
281
277
|
* @example
|
|
282
|
-
*
|
|
283
|
-
* api.info('GET /users');
|
|
284
|
-
* // [API] [REST] GET /users
|
|
285
|
-
*
|
|
286
|
-
* // Con badges adicionales
|
|
287
|
-
* api.badges(['v2', 'cached']).info('Respuesta desde caché');
|
|
288
|
-
* // [API] [v2] [cached] [REST] Respuesta desde caché
|
|
278
|
+
* logger.badge('DEBUG').badge('AUTH').info('Token validado');
|
|
289
279
|
*
|
|
290
|
-
* @since
|
|
280
|
+
* @since 3.0.0
|
|
291
281
|
*/
|
|
292
|
-
|
|
282
|
+
badge(badge: string): this;
|
|
293
283
|
/**
|
|
294
|
-
*
|
|
284
|
+
* Limpia todos los badges activos
|
|
295
285
|
*
|
|
296
|
-
* @
|
|
297
|
-
* @returns {ScopedLogger} Logger con scope personalizado
|
|
286
|
+
* @returns {this} Logger instance para encadenamiento
|
|
298
287
|
*
|
|
299
288
|
* @example
|
|
300
|
-
*
|
|
301
|
-
* dbLogger.info('Conectando a MongoDB');
|
|
302
|
-
* // [Database] Conectando a MongoDB
|
|
289
|
+
* logger.clearBadges().info('Sin badges');
|
|
303
290
|
*
|
|
304
|
-
*
|
|
305
|
-
* dbLogger.badge('SLOW').warn('Query tardó 5s');
|
|
306
|
-
* // [SLOW] [Database] Query tardó 5s
|
|
307
|
-
*
|
|
308
|
-
* @since 0.3.0
|
|
291
|
+
* @since 3.0.0
|
|
309
292
|
*/
|
|
310
|
-
|
|
293
|
+
clearBadges(): this;
|
|
294
|
+
component(name: string): ComponentLogger;
|
|
295
|
+
api(name: string): APILogger;
|
|
296
|
+
scope(name: string): ScopedLogger;
|
|
311
297
|
/**
|
|
312
298
|
* Personalización simple con configuración mínima
|
|
313
299
|
*
|
|
@@ -388,6 +374,160 @@ export declare class Logger {
|
|
|
388
374
|
* @since 0.3.0
|
|
389
375
|
*/
|
|
390
376
|
getExportHandler(): ExportLogHandler | undefined;
|
|
377
|
+
/**
|
|
378
|
+
* Añade un serializador personalizado para un tipo específico
|
|
379
|
+
*
|
|
380
|
+
* @param type - Constructor del tipo a serializar
|
|
381
|
+
* @param serializer - Función de serialización
|
|
382
|
+
* @param priority - Prioridad (mayor = primero)
|
|
383
|
+
*
|
|
384
|
+
* @example
|
|
385
|
+
* logger.addSerializer(Error, (err) => ({
|
|
386
|
+
* name: err.name,
|
|
387
|
+
* message: err.message,
|
|
388
|
+
* stack: err.stack?.split('\n').slice(0, 5)
|
|
389
|
+
* }));
|
|
390
|
+
*
|
|
391
|
+
* @since 3.0.0
|
|
392
|
+
*/
|
|
393
|
+
addSerializer<T>(type: new (...args: any[]) => T, serializer: SerializerFn<T>, priority?: number): void;
|
|
394
|
+
/**
|
|
395
|
+
* Elimina un serializador registrado
|
|
396
|
+
*
|
|
397
|
+
* @param type - Constructor del tipo a remover
|
|
398
|
+
* @returns true si se eliminó
|
|
399
|
+
*
|
|
400
|
+
* @since 3.0.0
|
|
401
|
+
*/
|
|
402
|
+
removeSerializer<T>(type: new (...args: any[]) => T): boolean;
|
|
403
|
+
/**
|
|
404
|
+
* Obtiene el registry de serializadores
|
|
405
|
+
*
|
|
406
|
+
* @returns SerializerRegistry
|
|
407
|
+
* @since 3.0.0
|
|
408
|
+
*/
|
|
409
|
+
getSerializerRegistry(): SerializerRegistry;
|
|
410
|
+
/**
|
|
411
|
+
* Registra un hook para un evento
|
|
412
|
+
*
|
|
413
|
+
* @param event - Evento: 'beforeLog' | 'afterLog' | 'onError'
|
|
414
|
+
* @param callback - Función a ejecutar
|
|
415
|
+
* @param priority - Prioridad (mayor = primero)
|
|
416
|
+
* @returns Función para desregistrar
|
|
417
|
+
*
|
|
418
|
+
* @example
|
|
419
|
+
* const unsubscribe = logger.on('beforeLog', (entry) => {
|
|
420
|
+
* entry.correlationId = getCorrelationId();
|
|
421
|
+
* return entry;
|
|
422
|
+
* });
|
|
423
|
+
*
|
|
424
|
+
* @since 3.0.0
|
|
425
|
+
*/
|
|
426
|
+
on(event: HookEvent, callback: HookCallback, priority?: number): () => void;
|
|
427
|
+
/**
|
|
428
|
+
* Registra un hook que se ejecuta solo una vez
|
|
429
|
+
*
|
|
430
|
+
* @param event - Evento: 'beforeLog' | 'afterLog' | 'onError'
|
|
431
|
+
* @param callback - Función a ejecutar
|
|
432
|
+
* @param priority - Prioridad (mayor = primero)
|
|
433
|
+
* @returns Función para desregistrar
|
|
434
|
+
*
|
|
435
|
+
* @since 3.0.0
|
|
436
|
+
*/
|
|
437
|
+
once(event: HookEvent, callback: HookCallback, priority?: number): () => void;
|
|
438
|
+
/**
|
|
439
|
+
* Elimina un hook registrado
|
|
440
|
+
*
|
|
441
|
+
* @param event - Evento del hook
|
|
442
|
+
* @param callback - Callback a remover
|
|
443
|
+
* @returns true si se eliminó
|
|
444
|
+
*
|
|
445
|
+
* @since 3.0.0
|
|
446
|
+
*/
|
|
447
|
+
off(event: HookEvent, callback: HookCallback): boolean;
|
|
448
|
+
/**
|
|
449
|
+
* Añade un middleware al pipeline
|
|
450
|
+
*
|
|
451
|
+
* @param middleware - Función middleware
|
|
452
|
+
* @param priority - Prioridad (mayor = primero)
|
|
453
|
+
* @returns Función para desregistrar
|
|
454
|
+
*
|
|
455
|
+
* @example
|
|
456
|
+
* logger.use((entry, next) => {
|
|
457
|
+
* entry.requestId = asyncLocalStorage.getStore()?.requestId;
|
|
458
|
+
* next();
|
|
459
|
+
* });
|
|
460
|
+
*
|
|
461
|
+
* @since 3.0.0
|
|
462
|
+
*/
|
|
463
|
+
use(middleware: MiddlewareFn, priority?: number): () => void;
|
|
464
|
+
/**
|
|
465
|
+
* Obtiene el HookManager
|
|
466
|
+
*
|
|
467
|
+
* @returns HookManager
|
|
468
|
+
* @since 3.0.0
|
|
469
|
+
*/
|
|
470
|
+
getHookManager(): HookManager;
|
|
471
|
+
/**
|
|
472
|
+
* Añade un transport para envío de logs
|
|
473
|
+
*
|
|
474
|
+
* @param target - Configuración del transport
|
|
475
|
+
* @returns ID único del transport
|
|
476
|
+
*
|
|
477
|
+
* @example
|
|
478
|
+
* // File transport
|
|
479
|
+
* logger.addTransport({
|
|
480
|
+
* target: 'file',
|
|
481
|
+
* options: { destination: '/var/log/app.log' }
|
|
482
|
+
* });
|
|
483
|
+
*
|
|
484
|
+
* @example
|
|
485
|
+
* // HTTP transport con batching
|
|
486
|
+
* logger.addTransport({
|
|
487
|
+
* target: 'http',
|
|
488
|
+
* options: {
|
|
489
|
+
* url: 'https://logs.example.com',
|
|
490
|
+
* batchSize: 100,
|
|
491
|
+
* flushInterval: 5000
|
|
492
|
+
* },
|
|
493
|
+
* level: 'warn'
|
|
494
|
+
* });
|
|
495
|
+
*
|
|
496
|
+
* @since 3.0.0
|
|
497
|
+
*/
|
|
498
|
+
addTransport(target: TransportTarget): string;
|
|
499
|
+
/**
|
|
500
|
+
* Elimina un transport
|
|
501
|
+
*
|
|
502
|
+
* @param id - ID del transport a remover
|
|
503
|
+
* @returns true si se eliminó
|
|
504
|
+
*
|
|
505
|
+
* @since 3.0.0
|
|
506
|
+
*/
|
|
507
|
+
removeTransport(id: string): boolean;
|
|
508
|
+
/**
|
|
509
|
+
* Fuerza el flush de todos los transports
|
|
510
|
+
*
|
|
511
|
+
* @returns Promise que resuelve cuando todos los buffers están vaciados
|
|
512
|
+
*
|
|
513
|
+
* @since 3.0.0
|
|
514
|
+
*/
|
|
515
|
+
flushTransports(): Promise<void>;
|
|
516
|
+
/**
|
|
517
|
+
* Cierra todos los transports
|
|
518
|
+
*
|
|
519
|
+
* @returns Promise que resuelve cuando todos están cerrados
|
|
520
|
+
*
|
|
521
|
+
* @since 3.0.0
|
|
522
|
+
*/
|
|
523
|
+
closeTransports(): Promise<void>;
|
|
524
|
+
/**
|
|
525
|
+
* Obtiene el TransportManager
|
|
526
|
+
*
|
|
527
|
+
* @returns TransportManager o undefined si no hay transports
|
|
528
|
+
* @since 3.0.0
|
|
529
|
+
*/
|
|
530
|
+
getTransportManager(): TransportManager | undefined;
|
|
391
531
|
/**
|
|
392
532
|
* Verifica si un nivel de log debe mostrarse según la verbosidad actual
|
|
393
533
|
* @private
|
|
@@ -408,17 +548,7 @@ export declare class Logger {
|
|
|
408
548
|
* @param {...any} args - Argumentos a loggear
|
|
409
549
|
*/
|
|
410
550
|
protected log(level: LogLevel, ...args: any[]): void;
|
|
411
|
-
|
|
412
|
-
* Registra información de debug (prioridad más baja)
|
|
413
|
-
*
|
|
414
|
-
* @param {...any} args - Mensajes y datos a loggear
|
|
415
|
-
*
|
|
416
|
-
* @example
|
|
417
|
-
* logger.debug('Variable estado:', { usuario: 'Juan', activo: true });
|
|
418
|
-
* logger.debug('Iniciando proceso de validación');
|
|
419
|
-
*
|
|
420
|
-
* @since 0.3.0
|
|
421
|
-
*/
|
|
551
|
+
logWithBindings(bindings: Bindings, level: LogLevel, ...args: any[]): void;
|
|
422
552
|
debug(...args: any[]): void;
|
|
423
553
|
/**
|
|
424
554
|
* Registra mensajes informativos
|
|
@@ -694,11 +824,28 @@ export declare const hideLocation: () => void;
|
|
|
694
824
|
export declare const showLocation: () => void;
|
|
695
825
|
export declare const hideBadges: () => void;
|
|
696
826
|
export declare const showBadges: () => void;
|
|
697
|
-
export declare const
|
|
698
|
-
export declare const
|
|
699
|
-
export declare const
|
|
827
|
+
export declare const badges: (badgeList: string[]) => Logger;
|
|
828
|
+
export declare const badge: (badgeName: string) => Logger;
|
|
829
|
+
export declare const clearBadges: () => Logger;
|
|
830
|
+
export declare const component: (name: string) => ComponentLogger;
|
|
831
|
+
export declare const api: (name: string) => APILogger;
|
|
832
|
+
export declare const scope: (name: string) => ScopedLogger;
|
|
700
833
|
export declare const customize: (overrides: any) => void;
|
|
701
834
|
export declare const styles: () => any;
|
|
835
|
+
export declare const addSerializer: <T>(type: new (...args: any[]) => T, serializer: SerializerFn<T>, priority?: number) => void;
|
|
836
|
+
export declare const removeSerializer: <T>(type: new (...args: any[]) => T) => boolean;
|
|
837
|
+
export declare const on: (event: HookEvent, callback: HookCallback, priority?: number) => () => void;
|
|
838
|
+
export declare const once: (event: HookEvent, callback: HookCallback, priority?: number) => () => void;
|
|
839
|
+
export declare const off: (event: HookEvent, callback: HookCallback) => boolean;
|
|
840
|
+
export declare const use: (middleware: MiddlewareFn, priority?: number) => () => void;
|
|
841
|
+
export declare const addTransport: (target: TransportTarget) => string;
|
|
842
|
+
export declare const removeTransport: (id: string) => boolean;
|
|
843
|
+
export declare const flushTransports: () => Promise<void>;
|
|
844
|
+
export declare const closeTransports: () => Promise<void>;
|
|
702
845
|
export { FileLogHandler, RemoteLogHandler, AnalyticsLogHandler, ExportLogHandler } from './handlers/index.js';
|
|
703
846
|
export { StyleBuilder, StylePresets as Styles } from './styling/index.js';
|
|
847
|
+
export { SerializerRegistry } from './serializers/index.js';
|
|
848
|
+
export { HookManager } from './hooks/index.js';
|
|
849
|
+
export { TransportManager, ConsoleTransport, FileTransport, HttpTransport } from './transports/index.js';
|
|
850
|
+
export { StyleCache, getStyleCache } from './styling/StyleCache.js';
|
|
704
851
|
//# sourceMappingURL=Logger.d.ts.map
|
package/dist/Logger.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Logger.d.ts","sourceRoot":"","sources":["../src/Logger.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,KAAK,EACR,QAAQ,EACR,SAAS,EACT,YAAY,EACZ,UAAU,EACV,YAAY,EAEZ,WAAW,EAEX,YAAY,
|
|
1
|
+
{"version":3,"file":"Logger.d.ts","sourceRoot":"","sources":["../src/Logger.ts"],"names":[],"mappings":"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"}
|
package/dist/ScopedLogger.d.ts
CHANGED
|
@@ -1,304 +1,51 @@
|
|
|
1
1
|
import { Logger } from './Logger.js';
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
*
|
|
6
|
-
* @class ScopedLogger
|
|
7
|
-
* @extends Logger
|
|
8
|
-
* @description Logger contextual que añade prefijos y badges automáticamente
|
|
9
|
-
*
|
|
10
|
-
* @example
|
|
11
|
-
* const dbLogger = logger.scope('Database');
|
|
12
|
-
* dbLogger.info('Conectando...'); // [Database] Conectando...
|
|
13
|
-
*
|
|
14
|
-
* // Con badges personalizados
|
|
15
|
-
* dbLogger.badge('SLOW').warn('Query lenta detectada');
|
|
16
|
-
* // [SLOW] [Database] Query lenta detectada
|
|
17
|
-
*
|
|
18
|
-
* @since 0.3.0
|
|
19
|
-
*/
|
|
20
|
-
export declare class ScopedLogger extends Logger {
|
|
21
|
-
private parentLogger;
|
|
22
|
-
private scopeName;
|
|
2
|
+
export declare class ScopedLogger {
|
|
3
|
+
private readonly parent;
|
|
4
|
+
private readonly scopeName;
|
|
23
5
|
private badgeList;
|
|
24
6
|
private contextStack;
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
* @param {string[]} badges - Array de badges a añadir
|
|
30
|
-
* @returns {ScopedLogger} Esta instancia para encadenamiento
|
|
31
|
-
*
|
|
32
|
-
* @example
|
|
33
|
-
* const api = logger.scope('API');
|
|
34
|
-
* api.badges(['v2', 'beta', 'cached'])
|
|
35
|
-
* .info('Respuesta desde caché');
|
|
36
|
-
* // [v2] [beta] [cached] [API] Respuesta desde caché
|
|
37
|
-
*
|
|
38
|
-
* @since 0.3.0
|
|
39
|
-
*/
|
|
40
|
-
badges(badges: string[]): ScopedLogger;
|
|
41
|
-
/**
|
|
42
|
-
* Añade un badge individual
|
|
43
|
-
*
|
|
44
|
-
* @param {string} badge - Badge a añadir
|
|
45
|
-
* @returns {ScopedLogger} Esta instancia para encadenamiento
|
|
46
|
-
*
|
|
47
|
-
* @example
|
|
48
|
-
* dbLogger.badge('SLOW').warn('Query tardó 3s');
|
|
49
|
-
* // [SLOW] [Database] Query tardó 3s
|
|
50
|
-
*
|
|
51
|
-
* @since 0.3.0
|
|
52
|
-
*/
|
|
53
|
-
badge(badge: string): ScopedLogger;
|
|
54
|
-
/**
|
|
55
|
-
* Elimina todos los badges
|
|
56
|
-
*
|
|
57
|
-
* @returns {ScopedLogger} Esta instancia para encadenamiento
|
|
58
|
-
*
|
|
59
|
-
* @example
|
|
60
|
-
* api.clearBadges().info('Sin badges');
|
|
61
|
-
* // [API] Sin badges
|
|
62
|
-
*
|
|
63
|
-
* @since 0.3.0
|
|
64
|
-
*/
|
|
65
|
-
clearBadges(): ScopedLogger;
|
|
66
|
-
/**
|
|
67
|
-
* Establece un preset de estilo para este logger con scope
|
|
68
|
-
*
|
|
69
|
-
* @param {string} presetName - Nombre del preset a aplicar
|
|
70
|
-
* @returns {ScopedLogger} Esta instancia para encadenamiento
|
|
71
|
-
*
|
|
72
|
-
* @example
|
|
73
|
-
* const errorLogger = logger.scope('ErrorHandler')
|
|
74
|
-
* .style('cyberpunk');
|
|
75
|
-
*
|
|
76
|
-
* @since 0.3.0
|
|
77
|
-
*/
|
|
78
|
-
style(presetName: string): ScopedLogger;
|
|
79
|
-
/**
|
|
80
|
-
* Crea un contexto temporal que se limpia automáticamente
|
|
81
|
-
*
|
|
82
|
-
* @param {string} contextName - Nombre del contexto
|
|
83
|
-
* @returns {ContextLogger} Logger con contexto temporal
|
|
84
|
-
*
|
|
85
|
-
* @example
|
|
86
|
-
* const db = logger.scope('Database');
|
|
87
|
-
*
|
|
88
|
-
* // Contexto temporal para una operación
|
|
89
|
-
* db.context('Migration').run(() => {
|
|
90
|
-
* db.info('Iniciando migración');
|
|
91
|
-
* db.success('Tablas creadas');
|
|
92
|
-
* });
|
|
93
|
-
* // Contexto automáticamente limpiado
|
|
94
|
-
*
|
|
95
|
-
* @since 0.3.0
|
|
96
|
-
*/
|
|
97
|
-
context(contextName: string): ContextLogger;
|
|
98
|
-
/**
|
|
99
|
-
* Sobrescribe el logging principal para incluir badges
|
|
100
|
-
* @protected
|
|
101
|
-
* @param {LogLevel} level - Nivel del log
|
|
102
|
-
* @param {...any} args - Argumentos del log
|
|
103
|
-
*/
|
|
104
|
-
protected log(level: LogLevel, ...args: any[]): void;
|
|
105
|
-
/**
|
|
106
|
-
* Obtiene la cadena de badges formateada
|
|
107
|
-
* @private
|
|
108
|
-
* @returns {string} Badges formateados como [BADGE1][BADGE2]
|
|
109
|
-
*/
|
|
110
|
-
private getBadgeString;
|
|
111
|
-
/**
|
|
112
|
-
* Obtiene el prefijo del scope (incluye stack de contexto)
|
|
113
|
-
* @private
|
|
114
|
-
* @returns {string} Prefijo completo con contextos
|
|
115
|
-
*/
|
|
7
|
+
private _timers?;
|
|
8
|
+
constructor(parent: Logger, scopeName: string);
|
|
9
|
+
private get timers();
|
|
10
|
+
private getBindings;
|
|
116
11
|
private getScopePrefix;
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
12
|
+
badges(badges: string[]): this;
|
|
13
|
+
badge(badge: string): this;
|
|
14
|
+
clearBadges(): this;
|
|
15
|
+
style(presetName: string): this;
|
|
16
|
+
context(contextName: string): ContextLogger;
|
|
17
|
+
time(label: string): void;
|
|
18
|
+
timeEnd(label: string): number | undefined;
|
|
19
|
+
debug(...args: any[]): void;
|
|
20
|
+
info(...args: any[]): void;
|
|
21
|
+
warn(...args: any[]): void;
|
|
22
|
+
error(...args: any[]): void;
|
|
23
|
+
success(...args: any[]): void;
|
|
24
|
+
critical(...args: any[]): void;
|
|
25
|
+
trace(...args: any[]): void;
|
|
121
26
|
_pushContext(context: string): void;
|
|
122
|
-
/**
|
|
123
|
-
* Método interno para eliminar contexto
|
|
124
|
-
* @internal
|
|
125
|
-
*/
|
|
126
27
|
_popContext(): void;
|
|
127
28
|
}
|
|
128
|
-
/**
|
|
129
|
-
* Logger específico para APIs con badges comunes de API
|
|
130
|
-
*
|
|
131
|
-
* @class APILogger
|
|
132
|
-
* @extends ScopedLogger
|
|
133
|
-
* @description Logger especializado para endpoints y servicios API
|
|
134
|
-
*
|
|
135
|
-
* @example
|
|
136
|
-
* const api = logger.api('REST');
|
|
137
|
-
* api.info('GET /users');
|
|
138
|
-
* // [API] [REST] GET /users
|
|
139
|
-
*
|
|
140
|
-
* api.slow('Query lenta', 3500);
|
|
141
|
-
* // [API] [SLOW] [REST] Query lenta (3500ms)
|
|
142
|
-
*
|
|
143
|
-
* @since 0.3.0
|
|
144
|
-
*/
|
|
145
29
|
export declare class APILogger extends ScopedLogger {
|
|
146
|
-
constructor(
|
|
147
|
-
/**
|
|
148
|
-
* Registra operaciones lentas
|
|
149
|
-
*
|
|
150
|
-
* @param {string} message - Mensaje sobre la operación lenta
|
|
151
|
-
* @param {number} duration - Duración en milisegundos (opcional)
|
|
152
|
-
*
|
|
153
|
-
* @example
|
|
154
|
-
* api.slow('Query compleja', 5000);
|
|
155
|
-
* api.slow('Procesamiento pesado');
|
|
156
|
-
*
|
|
157
|
-
* @since 0.3.0
|
|
158
|
-
*/
|
|
30
|
+
constructor(parent: Logger, apiName: string);
|
|
159
31
|
slow(message: string, duration?: number): void;
|
|
160
|
-
/**
|
|
161
|
-
* Registra límites de tasa alcanzados
|
|
162
|
-
*
|
|
163
|
-
* @param {string} message - Mensaje sobre el límite
|
|
164
|
-
*
|
|
165
|
-
* @example
|
|
166
|
-
* api.rateLimit('Límite excedido: 100 req/min');
|
|
167
|
-
*
|
|
168
|
-
* @since 0.3.0
|
|
169
|
-
*/
|
|
170
32
|
rateLimit(message: string): void;
|
|
171
|
-
/**
|
|
172
|
-
* Registra problemas de autenticación
|
|
173
|
-
*
|
|
174
|
-
* @param {string} message - Mensaje de autenticación
|
|
175
|
-
*
|
|
176
|
-
* @example
|
|
177
|
-
* api.auth('Token inválido o expirado');
|
|
178
|
-
* api.auth('Credenciales incorrectas');
|
|
179
|
-
*
|
|
180
|
-
* @since 0.3.0
|
|
181
|
-
*/
|
|
182
33
|
auth(message: string): void;
|
|
183
|
-
/**
|
|
184
|
-
* Registra advertencias de deprecación
|
|
185
|
-
*
|
|
186
|
-
* @param {string} message - Mensaje de deprecación
|
|
187
|
-
*
|
|
188
|
-
* @example
|
|
189
|
-
* api.deprecated('Este endpoint será eliminado en v2.0');
|
|
190
|
-
* api.deprecated('Usar /v2/users en lugar de /users');
|
|
191
|
-
*
|
|
192
|
-
* @since 0.3.0
|
|
193
|
-
*/
|
|
194
34
|
deprecated(message: string): void;
|
|
195
35
|
}
|
|
196
|
-
/**
|
|
197
|
-
* Logger específico para componentes de UI
|
|
198
|
-
*
|
|
199
|
-
* @class ComponentLogger
|
|
200
|
-
* @extends ScopedLogger
|
|
201
|
-
* @description Logger especializado para componentes con eventos de ciclo de vida
|
|
202
|
-
*
|
|
203
|
-
* @example
|
|
204
|
-
* const authForm = logger.component('AuthForm');
|
|
205
|
-
* authForm.lifecycle('mounted');
|
|
206
|
-
* authForm.stateChange('idle', 'loading');
|
|
207
|
-
*
|
|
208
|
-
* @since 0.3.0
|
|
209
|
-
*/
|
|
210
36
|
export declare class ComponentLogger extends ScopedLogger {
|
|
211
|
-
constructor(
|
|
212
|
-
/**
|
|
213
|
-
* Registra eventos del ciclo de vida del componente
|
|
214
|
-
*
|
|
215
|
-
* @param {string} event - Nombre del evento (mounted, unmounted, updated, etc)
|
|
216
|
-
* @param {string} message - Mensaje adicional (opcional)
|
|
217
|
-
*
|
|
218
|
-
* @example
|
|
219
|
-
* component.lifecycle('mounted', 'Componente listo');
|
|
220
|
-
* component.lifecycle('beforeDestroy');
|
|
221
|
-
*
|
|
222
|
-
* @since 0.3.0
|
|
223
|
-
*/
|
|
37
|
+
constructor(parent: Logger, componentName: string);
|
|
224
38
|
lifecycle(event: string, message?: string): void;
|
|
225
|
-
/**
|
|
226
|
-
* Registra cambios de estado
|
|
227
|
-
*
|
|
228
|
-
* @param {string} from - Estado anterior
|
|
229
|
-
* @param {string} to - Estado nuevo
|
|
230
|
-
* @param {any} data - Datos adicionales (opcional)
|
|
231
|
-
*
|
|
232
|
-
* @example
|
|
233
|
-
* component.stateChange('idle', 'loading');
|
|
234
|
-
* component.stateChange('loading', 'error', { code: 404 });
|
|
235
|
-
*
|
|
236
|
-
* @since 0.3.0
|
|
237
|
-
*/
|
|
238
39
|
stateChange(from: string, to: string, data?: any): void;
|
|
239
|
-
/**
|
|
240
|
-
* Registra cambios en las propiedades
|
|
241
|
-
*
|
|
242
|
-
* @param {Record<string, any>} changes - Objeto con los cambios
|
|
243
|
-
*
|
|
244
|
-
* @example
|
|
245
|
-
* component.propsChange({
|
|
246
|
-
* user: newUser,
|
|
247
|
-
* isActive: true
|
|
248
|
-
* });
|
|
249
|
-
*
|
|
250
|
-
* @since 0.3.0
|
|
251
|
-
*/
|
|
252
40
|
propsChange(changes: Record<string, any>): void;
|
|
253
41
|
}
|
|
254
|
-
/**
|
|
255
|
-
* Logger de contexto temporal que se limpia automáticamente
|
|
256
|
-
*
|
|
257
|
-
* @class ContextLogger
|
|
258
|
-
* @description Proporciona un contexto temporal para operaciones agrupadas
|
|
259
|
-
*
|
|
260
|
-
* @example
|
|
261
|
-
* const db = logger.scope('Database');
|
|
262
|
-
*
|
|
263
|
-
* // El contexto se limpia automáticamente al finalizar
|
|
264
|
-
* db.context('Transaction').run(() => {
|
|
265
|
-
* db.info('Iniciando transacción');
|
|
266
|
-
* db.success('Transacción completada');
|
|
267
|
-
* });
|
|
268
|
-
*
|
|
269
|
-
* @since 0.3.0
|
|
270
|
-
*/
|
|
271
42
|
export declare class ContextLogger {
|
|
272
43
|
private parentLogger;
|
|
273
44
|
private contextName;
|
|
274
45
|
constructor(parentLogger: ScopedLogger, contextName: string);
|
|
275
|
-
/**
|
|
276
|
-
* Ejecuta una función con este contexto activo
|
|
277
|
-
*
|
|
278
|
-
* @template T - Tipo de retorno de la función
|
|
279
|
-
* @param {Function} fn - Función a ejecutar
|
|
280
|
-
* @returns {T} Resultado de la función
|
|
281
|
-
*
|
|
282
|
-
* @example
|
|
283
|
-
* const result = logger.context('Process').run(() => {
|
|
284
|
-
* logger.info('Procesando...');
|
|
285
|
-
* return processData();
|
|
286
|
-
* });
|
|
287
|
-
*
|
|
288
|
-
* @since 0.3.0
|
|
289
|
-
*/
|
|
290
46
|
run<T>(fn: () => T): T;
|
|
291
|
-
/**
|
|
292
|
-
* Run an async function with this context active
|
|
293
|
-
*/
|
|
294
47
|
runAsync<T>(fn: () => Promise<T>): Promise<T>;
|
|
295
|
-
/**
|
|
296
|
-
* Start the context (manual mode)
|
|
297
|
-
*/
|
|
298
48
|
start(): void;
|
|
299
|
-
/**
|
|
300
|
-
* End the context (manual mode)
|
|
301
|
-
*/
|
|
302
49
|
end(): void;
|
|
303
50
|
debug(...args: any[]): void;
|
|
304
51
|
info(...args: any[]): void;
|