@viplance/nestjs-logger 0.4.8 → 0.4.9
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
|
[](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
|
-
-
|
|
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
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
97
|
+
host?: string;
|
|
98
|
+
port?: string;
|
|
99
|
+
table?: string;
|
|
100
|
+
collection?: string;
|
|
92
101
|
};
|
|
93
102
|
- websocket?: {
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
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)
|
|
@@ -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");
|
|
@@ -195,7 +194,8 @@ let LogService = LogService_1 = class LogService {
|
|
|
195
194
|
const connection = this.getConnection();
|
|
196
195
|
// find the same log in DB
|
|
197
196
|
let log;
|
|
198
|
-
if (LogService_1.options &&
|
|
197
|
+
if (LogService_1.options &&
|
|
198
|
+
(LogService_1.options.join || LogService_1.options.join === undefined)) {
|
|
199
199
|
log = await connection.findOne(LogService_1.Log, {
|
|
200
200
|
where: {
|
|
201
201
|
type: data.type,
|
|
@@ -203,7 +203,7 @@ let LogService = LogService_1 = class LogService {
|
|
|
203
203
|
},
|
|
204
204
|
});
|
|
205
205
|
}
|
|
206
|
-
const context = data.context
|
|
206
|
+
const context = data.context && typeof data.context.getArgs === 'function'
|
|
207
207
|
? this.parseContext(data.context)
|
|
208
208
|
: data.context;
|
|
209
209
|
if (log) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"log.service.js","sourceRoot":"","sources":["../../src/services/log.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,2CAIwB;AACxB,2DAAsD;AACtD,0CAA2C;AAC3C,oCAA8D;AAC9D,qCAOiB;AACjB,uDAAyD;
|
|
1
|
+
{"version":3,"file":"log.service.js","sourceRoot":"","sources":["../../src/services/log.service.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/public/scripts/common.js
CHANGED
|
@@ -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
|
|
302
|
+
{ threshold: 0.1 },
|
|
299
303
|
);
|
|
300
304
|
|
|
301
305
|
document.addEventListener('DOMContentLoaded', () => {
|
|
@@ -358,3 +362,22 @@ function handleWsDelete(id) {
|
|
|
358
362
|
checkAndUpdatePopup();
|
|
359
363
|
}
|
|
360
364
|
}
|
|
365
|
+
|
|
366
|
+
function checkScrollAnchorVisibility() {
|
|
367
|
+
if (isLoading || !hasMore) return;
|
|
368
|
+
const scrollAnchor = document.getElementById('scroll-anchor');
|
|
369
|
+
if (!scrollAnchor) return;
|
|
370
|
+
|
|
371
|
+
const rect = scrollAnchor.getBoundingClientRect();
|
|
372
|
+
const isVisible = rect.top < window.innerHeight;
|
|
373
|
+
|
|
374
|
+
if (isVisible) {
|
|
375
|
+
getLogs(currentPage + 1);
|
|
376
|
+
}
|
|
377
|
+
}
|
|
378
|
+
|
|
379
|
+
window.addEventListener('resize', () => {
|
|
380
|
+
if (hasMore) {
|
|
381
|
+
checkScrollAnchorVisibility();
|
|
382
|
+
}
|
|
383
|
+
});
|
package/public/scripts/ws.js
CHANGED
|
@@ -254,7 +254,10 @@ export class LogService implements LoggerService, OnApplicationShutdown {
|
|
|
254
254
|
// find the same log in DB
|
|
255
255
|
let log;
|
|
256
256
|
|
|
257
|
-
if (
|
|
257
|
+
if (
|
|
258
|
+
LogService.options &&
|
|
259
|
+
(LogService.options.join || LogService.options.join === undefined)
|
|
260
|
+
) {
|
|
258
261
|
log = await connection.findOne(LogService.Log, {
|
|
259
262
|
where: {
|
|
260
263
|
type: data.type,
|
|
@@ -264,8 +267,8 @@ export class LogService implements LoggerService, OnApplicationShutdown {
|
|
|
264
267
|
}
|
|
265
268
|
|
|
266
269
|
const context =
|
|
267
|
-
data.context
|
|
268
|
-
? this.parseContext(data.context)
|
|
270
|
+
data.context && typeof (data.context as any).getArgs === 'function'
|
|
271
|
+
? this.parseContext(data.context as any)
|
|
269
272
|
: data.context;
|
|
270
273
|
|
|
271
274
|
if (log) {
|
|
@@ -329,7 +332,7 @@ export class LogService implements LoggerService, OnApplicationShutdown {
|
|
|
329
332
|
return LogService.connection?.manager || this.memoryDbService;
|
|
330
333
|
}
|
|
331
334
|
|
|
332
|
-
private parseContext(context:
|
|
335
|
+
private parseContext(context: any): Partial<Context> {
|
|
333
336
|
const res: Partial<Context> = {};
|
|
334
337
|
const args = context.getArgs();
|
|
335
338
|
|