@viplance/nestjs-logger 0.4.8 → 0.5.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/README.md CHANGED
@@ -1,4 +1,5 @@
1
1
  # @viplance/nestjs-logger
2
+
2
3
  ## NestJS internal logging system
3
4
 
4
5
  [![npm version](https://img.shields.io/npm/v/@viplance/nestjs-logger.svg?style=flat-square)](https://www.npmjs.com/package/@viplance/nestjs-logger)
@@ -9,8 +10,10 @@
9
10
  </p>
10
11
 
11
12
  ### Installation
13
+
12
14
  1. Install the package `npm i @viplance/nestjs-logger`<br />
13
15
  2. Import the module in app.module.ts<br />
16
+
14
17
  ```typescript
15
18
  import { LogModule } from '@viplance/nestjs-logger';
16
19
 
@@ -35,6 +38,7 @@
35
38
  ```
36
39
 
37
40
  Connect a SQL or NoSQL database to store logs.<br />
41
+
38
42
  ```typescript
39
43
  await LogModule.init(app, {
40
44
  ...,
@@ -48,6 +52,7 @@ Connect a SQL or NoSQL database to store logs.<br />
48
52
  ```
49
53
 
50
54
  Enable a WebSocket connection to receive the logs in real time.<br />
55
+
51
56
  ```typescript
52
57
  await LogModule.init(app, {
53
58
  ...,
@@ -60,6 +65,7 @@ Enable a WebSocket connection to receive the logs in real time.<br />
60
65
  ```
61
66
 
62
67
  4. Use the `LogService` in case of custom logs to debug the application.<br />
68
+
63
69
  ```typescript
64
70
  import { LogService } from '@viplance/nestjs-logger';
65
71
 
@@ -67,17 +73,20 @@ Enable a WebSocket connection to receive the logs in real time.<br />
67
73
 
68
74
  this.logService.log('Some log information');
69
75
  ```
76
+
70
77
  <br />
71
78
 
72
79
  ### Additional information
73
80
 
74
- - `path`, `key`, `database` and `websocket` properties are optional.
81
+ - Use WebSocket and the default in-memory database for single-instance applications. For multiple instances, use the database option and the HTTP interface
82
+ - `path`, `key`, `database` and `websocket` properties are optional
75
83
  - The log UI could be available at `your_application_url`/`path`?key=`key` or WebSocket port
76
84
  - The log API could be available at `your_application_url`/`path`/api?key=`key`
77
85
  - By default the logs will be stored in memory and deleted when the application stops.<br />
78
- <br />
86
+ <br />
87
+
88
+ ### The LogModule options
79
89
 
80
- ### The LogModule options:
81
90
  - path?: string;
82
91
  - key?: string; // access key
83
92
  - join?: boolean; // merge the message duplicates
@@ -85,20 +94,21 @@ Enable a WebSocket connection to receive the logs in real time.<br />
85
94
  - maxAge?: number; // in days
86
95
  - maxSize?: number; // in megabytes
87
96
  - database?: DataSourceOptions & {
88
- host?: string;
89
- port?: string;
90
- table?: string;
91
- collection?: string;
97
+ host?: string;
98
+ port?: string;
99
+ table?: string;
100
+ collection?: string;
92
101
  };
93
102
  - websocket?: {
94
- port?: number;
95
- namespace?: string;
96
- host?: string;
97
- secure?: boolean;
103
+ port?: number;
104
+ namespace?: string;
105
+ host?: string;
106
+ secure?: boolean;
98
107
  };
99
- <br />
108
+ <br />
109
+
110
+ ### The LogService methods
100
111
 
101
- ### The LogService methods:
102
112
  - log(message: string, context?: object)
103
113
  - error(message: string, context?: object)
104
114
  - warn(message: string, context?: object)
@@ -32,5 +32,5 @@ export declare class LogService implements LoggerService, OnApplicationShutdown
32
32
  private getNewObjectId;
33
33
  private getConnection;
34
34
  private parseContext;
35
- private checkRecords;
35
+ private cleanUpLogs;
36
36
  }
@@ -17,7 +17,6 @@ const defaults_1 = require("../defaults");
17
17
  const types_1 = require("../types");
18
18
  const typeorm_1 = require("typeorm");
19
19
  const log_entity_1 = require("../entities/log.entity");
20
- const execution_context_host_1 = require("@nestjs/core/helpers/execution-context-host");
21
20
  const timers_1 = require("timers");
22
21
  const entity2table_1 = require("../utils/entity2table");
23
22
  const ws_service_1 = require("./ws.service");
@@ -61,7 +60,8 @@ let LogService = LogService_1 = class LogService {
61
60
  if (LogService_1.timer) {
62
61
  clearInterval(LogService_1.timer);
63
62
  }
64
- LogService_1.timer = (0, timers_1.setInterval)(this.checkRecords, 1000 * 60 * 60); // check one time per hour
63
+ LogService_1.timer = (0, timers_1.setInterval)(() => this.cleanUpLogs(), 1000 * 60); // check one time per minute
64
+ // LogService.timer = setInterval(() => this.cleanUpLogs(), 1000 * 60 * 60); // check one time per hour
65
65
  return LogService_1.connection;
66
66
  }
67
67
  setOptions(options) {
@@ -195,7 +195,8 @@ let LogService = LogService_1 = class LogService {
195
195
  const connection = this.getConnection();
196
196
  // find the same log in DB
197
197
  let log;
198
- if (LogService_1.options && (LogService_1.options.join || LogService_1.options.join === undefined)) {
198
+ if (LogService_1.options &&
199
+ (LogService_1.options.join || LogService_1.options.join === undefined)) {
199
200
  log = await connection.findOne(LogService_1.Log, {
200
201
  where: {
201
202
  type: data.type,
@@ -203,7 +204,7 @@ let LogService = LogService_1 = class LogService {
203
204
  },
204
205
  });
205
206
  }
206
- const context = data.context instanceof execution_context_host_1.ExecutionContextHost
207
+ const context = data.context && typeof data.context.getArgs === 'function'
207
208
  ? this.parseContext(data.context)
208
209
  : data.context;
209
210
  if (log) {
@@ -282,22 +283,109 @@ let LogService = LogService_1 = class LogService {
282
283
  }
283
284
  return res;
284
285
  }
285
- async checkRecords() {
286
- var _a, _b;
287
- if ((_a = LogService_1.options) === null || _a === void 0 ? void 0 : _a.maxSize) {
288
- const latest = await this.getConnection().find(LogService_1.Log, {
286
+ async cleanUpLogs() {
287
+ var _a, _b, _c;
288
+ const options = LogService_1.options;
289
+ if (!options)
290
+ return;
291
+ const table = LogService_1.Log;
292
+ const connection = this.getConnection();
293
+ const deletedIds = [];
294
+ // maxAge (days)
295
+ if (options.maxAge) {
296
+ const cutOffDate = new Date();
297
+ cutOffDate.setDate(cutOffDate.getDate() - options.maxAge);
298
+ if (LogService_1.connection) {
299
+ // Collect IDs before deleting for DB
300
+ const toDelete = await connection.find(table, {
301
+ where: ((_a = options.database) === null || _a === void 0 ? void 0 : _a.type) === 'mongodb'
302
+ ? { updatedAt: { $lt: cutOffDate } }
303
+ : { updatedAt: (0, typeorm_1.LessThan)(cutOffDate) },
304
+ select: ['_id'],
305
+ });
306
+ if (toDelete.length > 0) {
307
+ const ids = toDelete.map((item) => item._id);
308
+ deletedIds.push(...ids);
309
+ if (((_b = options.database) === null || _b === void 0 ? void 0 : _b.type) === 'mongodb') {
310
+ await LogService_1.connection.manager.delete(table, {
311
+ _id: { $in: ids },
312
+ });
313
+ }
314
+ else {
315
+ await LogService_1.connection
316
+ .getRepository(table)
317
+ .createQueryBuilder()
318
+ .delete()
319
+ .where('_id IN (:...ids)', { ids })
320
+ .execute();
321
+ }
322
+ }
323
+ }
324
+ else {
325
+ const ids = await this.memoryDbService.prune(table, (item) => new Date(item.updatedAt) < cutOffDate);
326
+ deletedIds.push(...ids);
327
+ }
328
+ }
329
+ // maxRecords (count)
330
+ if (options.maxRecords) {
331
+ const all = await connection.find(table, {
289
332
  order: { updatedAt: 'DESC' },
290
- take: (_b = LogService_1.options) === null || _b === void 0 ? void 0 : _b.maxSize,
291
333
  select: ['_id'],
292
334
  });
293
- const latestIds = latest.map((item) => item.id);
294
- await LogService_1.connection
295
- .getRepository(LogService_1.Log)
296
- .createQueryBuilder()
297
- .delete()
298
- .from(LogService_1.Log)
299
- .where('_id NOT IN (:...ids)', { ids: latestIds })
300
- .execute();
335
+ if (all.length > options.maxRecords) {
336
+ const toKeep = all.slice(0, options.maxRecords).map((item) => item._id);
337
+ const toDelete = all.slice(options.maxRecords).map((item) => item._id);
338
+ deletedIds.push(...toDelete);
339
+ if (LogService_1.connection) {
340
+ if (((_c = options.database) === null || _c === void 0 ? void 0 : _c.type) === 'mongodb') {
341
+ await LogService_1.connection.manager.delete(table, {
342
+ _id: { $in: toDelete },
343
+ });
344
+ }
345
+ else {
346
+ await LogService_1.connection
347
+ .getRepository(table)
348
+ .createQueryBuilder()
349
+ .delete()
350
+ .where('_id IN (:...ids)', { ids: toDelete })
351
+ .execute();
352
+ }
353
+ }
354
+ else {
355
+ await this.memoryDbService.prune(table, (item) => toDelete.includes(item._id));
356
+ }
357
+ }
358
+ }
359
+ // maxSize (megabytes) - Best effort for MemoryDB
360
+ if (options.maxSize) {
361
+ if (!LogService_1.connection) {
362
+ // Memory DB size estimate
363
+ const items = this.memoryDbService.getTable(table);
364
+ const sorted = [...items].sort((a, b) => new Date(b.updatedAt).getTime() - new Date(a.updatedAt).getTime());
365
+ let totalSize = 0;
366
+ const keepIds = [];
367
+ const removeIds = [];
368
+ for (const item of sorted) {
369
+ const size = JSON.stringify(item).length; // Rough size in bytes
370
+ if ((totalSize + size) / 1024 / 1024 < options.maxSize) {
371
+ totalSize += size;
372
+ keepIds.push(item._id);
373
+ }
374
+ else {
375
+ removeIds.push(item._id);
376
+ }
377
+ }
378
+ if (removeIds.length > 0) {
379
+ const ids = await this.memoryDbService.prune(table, (item) => removeIds.includes(item._id));
380
+ deletedIds.push(...ids);
381
+ }
382
+ }
383
+ }
384
+ if (deletedIds.length > 0) {
385
+ this.wsService.sendMessage({
386
+ action: 'delete',
387
+ data: { ids: deletedIds },
388
+ });
301
389
  }
302
390
  }
303
391
  };
@@ -1 +1 @@
1
- {"version":3,"file":"log.service.js","sourceRoot":"","sources":["../../src/services/log.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"log.service.js","sourceRoot":"","sources":["../../src/services/log.service.ts"],"names":[],"mappings":"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"}
@@ -21,5 +21,7 @@ export declare class MemoryDbService {
21
21
  }): Promise<any>;
22
22
  private findIndex;
23
23
  private partialEqual;
24
+ prune(entity: EntitySchema, filter: (item: any) => boolean): Promise<any[]>;
25
+ getTable(entity: EntitySchema): any[];
24
26
  private getTableName;
25
27
  }
@@ -194,6 +194,16 @@ let MemoryDbService = class MemoryDbService {
194
194
  }
195
195
  return true;
196
196
  }
197
+ async prune(entity, filter) {
198
+ const table = this.getTableName(entity);
199
+ const deleted = this.db[table].filter(filter).map((item) => item._id);
200
+ this.db[table] = this.db[table].filter((item) => !filter(item));
201
+ return Promise.resolve(deleted);
202
+ }
203
+ getTable(entity) {
204
+ const table = this.getTableName(entity);
205
+ return this.db[table];
206
+ }
197
207
  };
198
208
  exports.MemoryDbService = MemoryDbService;
199
209
  exports.MemoryDbService = MemoryDbService = __decorate([
@@ -1 +1 @@
1
- {"version":3,"file":"memory-db.service.js","sourceRoot":"","sources":["../../src/services/memory-db.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"memory-db.service.js","sourceRoot":"","sources":["../../src/services/memory-db.service.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@viplance/nestjs-logger",
3
- "version": "0.4.8",
3
+ "version": "0.5.0",
4
4
  "description": "NestJS internal logging system",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -229,6 +229,10 @@ async function getLogs(page = 1) {
229
229
  checkElementsVisibility();
230
230
  renderLogs();
231
231
  checkAndUpdatePopup();
232
+
233
+ if (hasMore) {
234
+ setTimeout(checkScrollAnchorVisibility, 100);
235
+ }
232
236
  } else {
233
237
  isLoading = false;
234
238
  document.getElementById('loader').style.display = 'none';
@@ -295,7 +299,7 @@ const observer = new IntersectionObserver(
295
299
  getLogs(currentPage + 1);
296
300
  }
297
301
  },
298
- { threshold: 1.0 },
302
+ { threshold: 0.1 },
299
303
  );
300
304
 
301
305
  document.addEventListener('DOMContentLoaded', () => {
@@ -349,12 +353,41 @@ function handleWsUpdate(updatedLog) {
349
353
  checkAndUpdatePopup();
350
354
  }
351
355
 
352
- function handleWsDelete(id) {
353
- const idx = logs.findIndex((l) => l._id === id);
354
- if (idx > -1) {
355
- logs.splice(idx, 1);
356
+ function handleWsDelete(idOrIds) {
357
+ const ids = Array.isArray(idOrIds) ? idOrIds : [idOrIds];
358
+ let changed = false;
359
+
360
+ ids.forEach((id) => {
361
+ const idx = logs.findIndex((l) => l._id === id);
362
+
363
+ if (idx > -1) {
364
+ logs.splice(idx, 1);
365
+ changed = true;
366
+ }
367
+ });
368
+
369
+ if (changed) {
356
370
  checkElementsVisibility();
357
371
  renderLogs();
358
372
  checkAndUpdatePopup();
359
373
  }
360
374
  }
375
+
376
+ function checkScrollAnchorVisibility() {
377
+ if (isLoading || !hasMore) return;
378
+ const scrollAnchor = document.getElementById('scroll-anchor');
379
+ if (!scrollAnchor) return;
380
+
381
+ const rect = scrollAnchor.getBoundingClientRect();
382
+ const isVisible = rect.top < window.innerHeight;
383
+
384
+ if (isVisible) {
385
+ getLogs(currentPage + 1);
386
+ }
387
+ }
388
+
389
+ window.addEventListener('resize', () => {
390
+ if (hasMore) {
391
+ checkScrollAnchorVisibility();
392
+ }
393
+ });
@@ -76,6 +76,10 @@ async function connectWebSocket() {
76
76
  checkElementsVisibility(logs);
77
77
  renderLogs(logs);
78
78
  checkAndUpdatePopup();
79
+
80
+ if (hasMore) {
81
+ setTimeout(checkScrollAnchorVisibility, 100);
82
+ }
79
83
  break;
80
84
  case 'insert':
81
85
  if (currentPage === 1) {
@@ -86,7 +90,7 @@ async function connectWebSocket() {
86
90
  handleWsUpdate(data['data']);
87
91
  break;
88
92
  case 'delete':
89
- handleWsDelete(data['data']._id);
93
+ handleWsDelete(data['data']._id || data['data'].ids);
90
94
  break;
91
95
  }
92
96
  }
@@ -13,6 +13,7 @@ import {
13
13
  EntitySchema,
14
14
  Like,
15
15
  In,
16
+ LessThan,
16
17
  } from 'typeorm';
17
18
  import { createLogEntity } from '../entities/log.entity';
18
19
  import { ExecutionContextHost } from '@nestjs/core/helpers/execution-context-host';
@@ -81,7 +82,8 @@ export class LogService implements LoggerService, OnApplicationShutdown {
81
82
  clearInterval(LogService.timer);
82
83
  }
83
84
 
84
- LogService.timer = setInterval(this.checkRecords, 1000 * 60 * 60); // check one time per hour
85
+ LogService.timer = setInterval(() => this.cleanUpLogs(), 1000 * 60); // check one time per minute
86
+ // LogService.timer = setInterval(() => this.cleanUpLogs(), 1000 * 60 * 60); // check one time per hour
85
87
 
86
88
  return LogService.connection;
87
89
  }
@@ -254,7 +256,10 @@ export class LogService implements LoggerService, OnApplicationShutdown {
254
256
  // find the same log in DB
255
257
  let log;
256
258
 
257
- if (LogService.options && (LogService.options.join || LogService.options.join === undefined)) {
259
+ if (
260
+ LogService.options &&
261
+ (LogService.options.join || LogService.options.join === undefined)
262
+ ) {
258
263
  log = await connection.findOne(LogService.Log, {
259
264
  where: {
260
265
  type: data.type,
@@ -264,8 +269,8 @@ export class LogService implements LoggerService, OnApplicationShutdown {
264
269
  }
265
270
 
266
271
  const context =
267
- data.context instanceof ExecutionContextHost
268
- ? this.parseContext(data.context)
272
+ data.context && typeof (data.context as any).getArgs === 'function'
273
+ ? this.parseContext(data.context as any)
269
274
  : data.context;
270
275
 
271
276
  if (log) {
@@ -329,7 +334,7 @@ export class LogService implements LoggerService, OnApplicationShutdown {
329
334
  return LogService.connection?.manager || this.memoryDbService;
330
335
  }
331
336
 
332
- private parseContext(context: ExecutionContextHost): Partial<Context> {
337
+ private parseContext(context: any): Partial<Context> {
333
338
  const res: Partial<Context> = {};
334
339
  const args = context.getArgs();
335
340
 
@@ -363,23 +368,127 @@ export class LogService implements LoggerService, OnApplicationShutdown {
363
368
  return res;
364
369
  }
365
370
 
366
- private async checkRecords() {
367
- if (LogService.options?.maxSize) {
368
- const latest = await this.getConnection().find(LogService.Log, {
371
+ private async cleanUpLogs() {
372
+ const options = LogService.options;
373
+ if (!options) return;
374
+
375
+ const table = LogService.Log;
376
+ const connection = this.getConnection();
377
+
378
+ const deletedIds: any[] = [];
379
+
380
+ // maxAge (days)
381
+ if (options.maxAge) {
382
+ const cutOffDate = new Date();
383
+ cutOffDate.setDate(cutOffDate.getDate() - options.maxAge);
384
+
385
+ if (LogService.connection) {
386
+ // Collect IDs before deleting for DB
387
+ const toDelete = await connection.find(table, {
388
+ where:
389
+ options.database?.type === 'mongodb'
390
+ ? { updatedAt: { $lt: cutOffDate } }
391
+ : { updatedAt: LessThan(cutOffDate) },
392
+ select: ['_id'],
393
+ });
394
+
395
+ if (toDelete.length > 0) {
396
+ const ids = toDelete.map((item) => item._id);
397
+ deletedIds.push(...ids);
398
+
399
+ if (options.database?.type === 'mongodb') {
400
+ await LogService.connection.manager.delete(table, {
401
+ _id: { $in: ids },
402
+ });
403
+ } else {
404
+ await LogService.connection
405
+ .getRepository(table)
406
+ .createQueryBuilder()
407
+ .delete()
408
+ .where('_id IN (:...ids)', { ids })
409
+ .execute();
410
+ }
411
+ }
412
+ } else {
413
+ const ids = await this.memoryDbService.prune(
414
+ table,
415
+ (item) => new Date(item.updatedAt) < cutOffDate
416
+ );
417
+ deletedIds.push(...ids);
418
+ }
419
+ }
420
+
421
+ // maxRecords (count)
422
+ if (options.maxRecords) {
423
+ const all = await connection.find(table, {
369
424
  order: { updatedAt: 'DESC' },
370
- take: LogService.options?.maxSize,
371
425
  select: ['_id'],
372
426
  });
373
427
 
374
- const latestIds = latest.map((item) => item.id);
428
+ if (all.length > options.maxRecords) {
429
+ const toKeep = all.slice(0, options.maxRecords).map((item) => item._id);
430
+ const toDelete = all.slice(options.maxRecords).map((item) => item._id);
431
+
432
+ deletedIds.push(...toDelete);
433
+
434
+ if (LogService.connection) {
435
+ if (options.database?.type === 'mongodb') {
436
+ await LogService.connection.manager.delete(table, {
437
+ _id: { $in: toDelete },
438
+ });
439
+ } else {
440
+ await LogService.connection
441
+ .getRepository(table)
442
+ .createQueryBuilder()
443
+ .delete()
444
+ .where('_id IN (:...ids)', { ids: toDelete })
445
+ .execute();
446
+ }
447
+ } else {
448
+ await this.memoryDbService.prune(table, (item) =>
449
+ toDelete.includes(item._id)
450
+ );
451
+ }
452
+ }
453
+ }
454
+
455
+ // maxSize (megabytes) - Best effort for MemoryDB
456
+ if (options.maxSize) {
457
+ if (!LogService.connection) {
458
+ // Memory DB size estimate
459
+ const items = this.memoryDbService.getTable(table);
460
+ const sorted = [...items].sort(
461
+ (a, b) =>
462
+ new Date(b.updatedAt).getTime() - new Date(a.updatedAt).getTime()
463
+ );
464
+ let totalSize = 0;
465
+ const keepIds: any[] = [];
466
+ const removeIds: any[] = [];
467
+
468
+ for (const item of sorted) {
469
+ const size = JSON.stringify(item).length; // Rough size in bytes
470
+ if ((totalSize + size) / 1024 / 1024 < options.maxSize) {
471
+ totalSize += size;
472
+ keepIds.push(item._id);
473
+ } else {
474
+ removeIds.push(item._id);
475
+ }
476
+ }
375
477
 
376
- await LogService.connection
377
- .getRepository(LogService.Log)
378
- .createQueryBuilder()
379
- .delete()
380
- .from(LogService.Log)
381
- .where('_id NOT IN (:...ids)', { ids: latestIds })
382
- .execute();
478
+ if (removeIds.length > 0) {
479
+ const ids = await this.memoryDbService.prune(table, (item) =>
480
+ removeIds.includes(item._id)
481
+ );
482
+ deletedIds.push(...ids);
483
+ }
484
+ }
485
+ }
486
+
487
+ if (deletedIds.length > 0) {
488
+ this.wsService.sendMessage({
489
+ action: 'delete',
490
+ data: { ids: deletedIds },
491
+ });
383
492
  }
384
493
  }
385
494
  }
@@ -243,5 +243,20 @@ export class MemoryDbService {
243
243
  return true;
244
244
  }
245
245
 
246
+ public async prune(
247
+ entity: EntitySchema,
248
+ filter: (item: any) => boolean
249
+ ): Promise<any[]> {
250
+ const table = this.getTableName(entity);
251
+ const deleted = this.db[table].filter(filter).map((item) => item._id);
252
+ this.db[table] = this.db[table].filter((item) => !filter(item));
253
+ return Promise.resolve(deleted);
254
+ }
255
+
256
+ public getTable(entity: EntitySchema): any[] {
257
+ const table = this.getTableName(entity);
258
+ return this.db[table];
259
+ }
260
+
246
261
  private getTableName = (entity: EntitySchema) => entity.options.name;
247
262
  }