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 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 { createLogger } from 'lognerd';
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
- const logger = createLogger();
35
+ ```typescript
36
+ import { logger } from 'lognerd';
23
37
 
24
38
  logger.info('Aplicación iniciada');
25
- logger.error('Error crítico', { code: 500, message: 'Error de servidor' });
26
- logger.warn('Advertencia: conexión lenta');
27
- logger.debug('Información de debug', { userId: 123 });
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 { createLogger } from 'lognerd';
167
+ import { info, warn, error, debug, configureLogger } from 'lognerd';
139
168
 
140
- const logger = createLogger({
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
- logger.info('Servidor iniciado en puerto 3000');
150
- logger.debug('Variables de entorno cargadas', { env: process.env.NODE_ENV });
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
- logger.info('Operación exitosa');
155
- } catch (error) {
156
- logger.error('Error en operación', { error: error.message, stack: error.stack });
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
- const logger = createLogger();
193
+ import { configureLogger } from 'lognerd';
164
194
 
165
- // Cambiar el nivel de log dinámicamente
166
- logger.updateConfig({ level: 'ERROR' });
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 la configuración proporcionada.
224
+ Crea una nueva instancia del logger con configuración personalizada (útil para múltiples loggers).
174
225
 
175
- ### Métodos del Logger
226
+ ### Métodos Disponibles
176
227
 
177
- - `logger.error(message: string, data?: unknown): void` - Log de error
178
- - `logger.warn(message: string, data?: unknown): void` - Log de advertencia
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(newConfig: Partial<LoggerConfig>): void` - Actualizar configuración
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 };
@@ -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;AAE/D,eAAO,MAAM,YAAY,GAAI,SAAS,OAAO,CAAC,YAAY,CAAC,kBAG1D,CAAC;AAEF,OAAO,EAAE,aAAa,EAAE,CAAC;AACzB,YAAY,EAAE,YAAY,EAAE,QAAQ,EAAE,CAAC;AACvC,OAAO,EAAE,kBAAkB,EAAE,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;AAS/C,8FATA,8BAAa,OASA;AARtB,0DAA4D;AAUnD,mGAVA,kCAAkB,OAUA;AAPpB,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"}
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.0",
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
  }