@viplance/nestjs-logger 0.3.2 → 0.3.4
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 +3 -4
- package/dist/services/log.service.js +9 -9
- package/dist/services/log.service.js.map +1 -1
- package/package.json +1 -1
- package/public/index.html +24 -16
- package/public/scripts/common.js +11 -6
- package/public/scripts/details-popup.js +7 -2
- package/public/scripts/json-viewer.js +1 -1
- package/public/styles/index.css +59 -29
- package/src/services/log.service.ts +11 -11
package/README.md
CHANGED
|
@@ -29,8 +29,7 @@
|
|
|
29
29
|
});
|
|
30
30
|
```
|
|
31
31
|
|
|
32
|
-
Connect the database to store logs
|
|
33
|
-
|
|
32
|
+
Connect the database to store logs.<br />
|
|
34
33
|
```typescript
|
|
35
34
|
await LogModule.init(app, {
|
|
36
35
|
...,
|
|
@@ -51,7 +50,7 @@ Connect the database to store logs.
|
|
|
51
50
|
|
|
52
51
|
this.logService.log('Some log information');
|
|
53
52
|
```
|
|
54
|
-
|
|
53
|
+
<br />
|
|
55
54
|
|
|
56
55
|
### Additional information
|
|
57
56
|
|
|
@@ -59,7 +58,7 @@ Connect the database to store logs.
|
|
|
59
58
|
- The logs could be available at `your_application_url`/`path`?key=`key`
|
|
60
59
|
- The log API could be available at `your_application_url`/`path`/api?key=`key`
|
|
61
60
|
- By default the logs will be stored in memory and deleted when the application stops.<br />
|
|
62
|
-
|
|
61
|
+
<br />
|
|
63
62
|
|
|
64
63
|
### The LogService methods:
|
|
65
64
|
- log()
|
|
@@ -129,25 +129,25 @@ let LogService = LogService_1 = class LogService {
|
|
|
129
129
|
const res = {};
|
|
130
130
|
const args = context.getArgs();
|
|
131
131
|
for (const arg of args) {
|
|
132
|
-
if (arg.
|
|
133
|
-
res.
|
|
134
|
-
const len = arg.rawHeaders.length - 1;
|
|
135
|
-
for (let i = 0; i < len; i += 2) {
|
|
136
|
-
res.rawHeaders[arg.rawHeaders[i]] = arg.rawHeaders[i + 1];
|
|
137
|
-
}
|
|
132
|
+
if (arg.method) {
|
|
133
|
+
res.method = arg.method;
|
|
138
134
|
}
|
|
139
135
|
if (arg.url) {
|
|
140
136
|
res.url = arg.url;
|
|
141
137
|
}
|
|
142
|
-
if (arg.method) {
|
|
143
|
-
res.method = arg.method;
|
|
144
|
-
}
|
|
145
138
|
if (arg.params) {
|
|
146
139
|
res.params = arg.params;
|
|
147
140
|
}
|
|
148
141
|
if (arg.body) {
|
|
149
142
|
res.body = arg.body;
|
|
150
143
|
}
|
|
144
|
+
if (arg.rawHeaders) {
|
|
145
|
+
res.rawHeaders = {};
|
|
146
|
+
const len = arg.rawHeaders.length - 1;
|
|
147
|
+
for (let i = 0; i < len; i += 2) {
|
|
148
|
+
res.rawHeaders[arg.rawHeaders[i]] = arg.rawHeaders[i + 1];
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
151
|
}
|
|
152
152
|
return res;
|
|
153
153
|
}
|
|
@@ -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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"}
|
package/package.json
CHANGED
package/public/index.html
CHANGED
|
@@ -26,24 +26,32 @@
|
|
|
26
26
|
</head>
|
|
27
27
|
<body>
|
|
28
28
|
<header>
|
|
29
|
-
<div class="content
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
29
|
+
<div class="container controls content">
|
|
30
|
+
<div class="logo">
|
|
31
|
+
<img src="favicon.ico" alt="Logger" />
|
|
32
|
+
<h2>NestJS logging system</h2>
|
|
33
|
+
</div>
|
|
34
|
+
<nav>
|
|
35
|
+
<ul>
|
|
36
|
+
<li class="all active" data-selector="all">All</a></li>
|
|
37
|
+
<li class="log" data-selector="log">Log</a></li>
|
|
38
|
+
<li class="error" data-selector="error">Error</li>
|
|
39
|
+
<li class="warn" data-selector="warn">Warning</li>
|
|
40
|
+
<li class="debug" data-selector="debug">Debug</li>
|
|
41
|
+
<li class="verbose" data-selector="verbose">Verbose</li>
|
|
42
|
+
</ul>
|
|
43
|
+
</nav>
|
|
44
|
+
<div onclick="getLogs()"><button class="white">Refresh</button></div>
|
|
45
|
+
</div>
|
|
46
|
+
<div class="container table-header">
|
|
47
|
+
<div class="col">Type</div>
|
|
48
|
+
<div class="col">Info</div>
|
|
49
|
+
<div class="col">Trace</div>
|
|
50
|
+
<div class="col">Count</div>
|
|
45
51
|
</div>
|
|
46
52
|
</header>
|
|
53
|
+
|
|
54
|
+
<div id="no-logs" class="content container center"><h3>No logs</h3></div>
|
|
47
55
|
|
|
48
56
|
<div class="container mt-3">
|
|
49
57
|
<section id="logs"></section>
|
package/public/scripts/common.js
CHANGED
|
@@ -141,12 +141,17 @@ async function getLogs() {
|
|
|
141
141
|
return selectedLogTypes["all"] || selectedLogTypes[log.type];
|
|
142
142
|
});
|
|
143
143
|
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
144
|
+
if (logs.length === 0) {
|
|
145
|
+
document.getElementById("no-logs").style.display = "block";
|
|
146
|
+
document.querySelector(".table-header").style.display = "none";
|
|
147
|
+
document.querySelector("nav").style.display = "none";
|
|
148
|
+
} else {
|
|
149
|
+
document.getElementById("no-logs").style.display = "none";
|
|
150
|
+
document.querySelector(".table-header").style.display = "flex";
|
|
151
|
+
document.querySelector("nav").style.display = "flex";
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
let html = "";
|
|
150
155
|
|
|
151
156
|
logs.forEach((log) => {
|
|
152
157
|
html += getLogHtmlElement(log);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
function showLogDetails(log) {
|
|
2
2
|
const popup = document.getElementById(`popup`);
|
|
3
|
-
|
|
3
|
+
|
|
4
4
|
popup.innerHTML = `
|
|
5
5
|
<div class="content center">
|
|
6
6
|
<div class="container mt-2">
|
|
@@ -10,7 +10,7 @@ function showLogDetails(log) {
|
|
|
10
10
|
log.trace
|
|
11
11
|
? `
|
|
12
12
|
<h3 class="mt-2">Trace</h3>
|
|
13
|
-
<p class="pl-2">${log.trace}</p>
|
|
13
|
+
<p class="key pl-2"><span>${getTrace(log.trace)}</span></p>
|
|
14
14
|
`
|
|
15
15
|
: ""
|
|
16
16
|
}
|
|
@@ -25,9 +25,14 @@ function showLogDetails(log) {
|
|
|
25
25
|
<button class="white mt-2" onclick="closePopup()">Close</button>
|
|
26
26
|
</div>
|
|
27
27
|
<div>`;
|
|
28
|
+
|
|
28
29
|
popup.style.display = "block";
|
|
29
30
|
}
|
|
30
31
|
|
|
32
|
+
function getTrace(trace) {
|
|
33
|
+
return trace.replace(new RegExp(String.fromCharCode(10), "g"), "<br />");
|
|
34
|
+
}
|
|
35
|
+
|
|
31
36
|
function closePopup() {
|
|
32
37
|
const popup = document.getElementById(`popup`);
|
|
33
38
|
popup.style.display = "none";
|
|
@@ -15,7 +15,7 @@ function jsonViewer(json, parentKey) {
|
|
|
15
15
|
if (typeof json[key] === "object") {
|
|
16
16
|
res += jsonViewer(json[key], key);
|
|
17
17
|
} else {
|
|
18
|
-
res += `<div class="pl-2">${key}:
|
|
18
|
+
res += `<div class="key pl-2">${key}: <span>${json[key]}</span></div>`;
|
|
19
19
|
}
|
|
20
20
|
}
|
|
21
21
|
|
package/public/styles/index.css
CHANGED
|
@@ -10,10 +10,6 @@ body {
|
|
|
10
10
|
position: relative;
|
|
11
11
|
}
|
|
12
12
|
|
|
13
|
-
body:nth-child(2) {
|
|
14
|
-
margin-top: 4rem;
|
|
15
|
-
}
|
|
16
|
-
|
|
17
13
|
h1 {
|
|
18
14
|
font-size: 2.5rem;
|
|
19
15
|
font-weight: 400;
|
|
@@ -56,16 +52,17 @@ h3 {
|
|
|
56
52
|
max-width: 1600px;
|
|
57
53
|
}
|
|
58
54
|
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
padding: 0 2rem;
|
|
62
|
-
}
|
|
55
|
+
#logs {
|
|
56
|
+
margin-top: 4rem;
|
|
63
57
|
}
|
|
64
58
|
|
|
65
|
-
|
|
66
|
-
|
|
59
|
+
#no-logs {
|
|
60
|
+
display: none;
|
|
61
|
+
margin-top: 6rem;
|
|
62
|
+
text-align: center;
|
|
67
63
|
}
|
|
68
64
|
|
|
65
|
+
/* buttons */
|
|
69
66
|
button {
|
|
70
67
|
display: flex;
|
|
71
68
|
justify-content: space-between;
|
|
@@ -106,31 +103,41 @@ button.white {
|
|
|
106
103
|
|
|
107
104
|
/* header */
|
|
108
105
|
header {
|
|
109
|
-
padding-top: 1rem;
|
|
110
|
-
box-sizing: border-box;
|
|
111
106
|
display: flex;
|
|
112
|
-
|
|
113
|
-
|
|
107
|
+
align-items: center;
|
|
108
|
+
box-sizing: border-box;
|
|
109
|
+
flex-direction: column;
|
|
114
110
|
position: fixed !important;
|
|
115
111
|
top: 0;
|
|
116
112
|
background: var(--white);
|
|
113
|
+
padding-top: 1rem;
|
|
117
114
|
z-index: 1;
|
|
118
115
|
width: 100%;
|
|
119
116
|
}
|
|
120
117
|
|
|
121
|
-
|
|
118
|
+
.controls {
|
|
119
|
+
display: flex;
|
|
120
|
+
justify-content: space-between;
|
|
121
|
+
flex-direction: row;
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
.controls .logo {
|
|
122
125
|
display: flex;
|
|
123
126
|
align-items: center;
|
|
124
127
|
justify-items: left;
|
|
125
128
|
opacity: 0.8;
|
|
126
129
|
}
|
|
127
130
|
|
|
128
|
-
|
|
131
|
+
.controls .logo img {
|
|
129
132
|
height: 3rem;
|
|
130
133
|
width: 3rem;
|
|
131
134
|
margin-right: 1rem;
|
|
132
135
|
}
|
|
133
136
|
|
|
137
|
+
nav {
|
|
138
|
+
display: none;
|
|
139
|
+
}
|
|
140
|
+
|
|
134
141
|
nav ul {
|
|
135
142
|
display: flex;
|
|
136
143
|
justify-content: space-evenly;
|
|
@@ -169,53 +176,57 @@ nav ul li:hover {
|
|
|
169
176
|
}
|
|
170
177
|
|
|
171
178
|
/* table */
|
|
172
|
-
.header,
|
|
179
|
+
.table-header,
|
|
173
180
|
.row {
|
|
174
181
|
display: flex;
|
|
175
182
|
gap: 1rem;
|
|
183
|
+
flex-direction: row;
|
|
176
184
|
row-gap: 1rem;
|
|
177
185
|
align-items: center;
|
|
178
186
|
justify-content: space-around;
|
|
179
187
|
}
|
|
180
188
|
|
|
181
|
-
.header {
|
|
189
|
+
.table-header {
|
|
190
|
+
display: none;
|
|
182
191
|
height: 2rem;
|
|
183
192
|
background-color: var(--dark);
|
|
184
193
|
color: var(--white);
|
|
194
|
+
margin-top: 0.5rem;
|
|
185
195
|
}
|
|
186
196
|
|
|
187
|
-
.header .col,
|
|
197
|
+
.table-header .col,
|
|
188
198
|
.row > :last-child {
|
|
189
199
|
text-align: center;
|
|
190
200
|
}
|
|
191
|
-
|
|
192
|
-
.header > :first-child,
|
|
201
|
+
.table-header > :first-child,
|
|
193
202
|
.row > :first-child {
|
|
194
203
|
flex: 0 0 5rem;
|
|
195
204
|
text-align: center;
|
|
196
205
|
}
|
|
197
|
-
|
|
206
|
+
|
|
207
|
+
.table-header > :nth-child(2),
|
|
198
208
|
.row > :nth-child(2) {
|
|
199
209
|
flex: 0 0 20rem;
|
|
200
210
|
}
|
|
201
|
-
.header > :nth-child(3),
|
|
211
|
+
.table-header > :nth-child(3),
|
|
202
212
|
.row > :nth-child(3) {
|
|
203
213
|
flex: 1 1 auto;
|
|
204
214
|
}
|
|
205
|
-
|
|
215
|
+
.table-header > :last-child,
|
|
206
216
|
.row > :last-child {
|
|
207
217
|
flex: 0 0 5rem;
|
|
208
218
|
}
|
|
209
219
|
|
|
210
220
|
.row {
|
|
211
221
|
height: 3rem;
|
|
212
|
-
opacity: 0.8;
|
|
213
222
|
font-weight: 100;
|
|
214
223
|
cursor: pointer;
|
|
224
|
+
border-left: 2px solid transparent;
|
|
215
225
|
}
|
|
216
226
|
|
|
217
227
|
.row:hover {
|
|
218
|
-
|
|
228
|
+
border-left: 2px solid;
|
|
229
|
+
border-left-color: var(--dark);
|
|
219
230
|
}
|
|
220
231
|
|
|
221
232
|
.row:nth-child(odd) {
|
|
@@ -266,13 +277,32 @@ div.header > :last-child,
|
|
|
266
277
|
#popup {
|
|
267
278
|
position: fixed;
|
|
268
279
|
display: none;
|
|
269
|
-
|
|
280
|
+
box-sizing: border-box;
|
|
281
|
+
padding: 2rem;
|
|
282
|
+
background-color: rgba(255, 255, 255, 0.95);
|
|
283
|
+
backdrop-filter: blur(5px);
|
|
284
|
+
border: 1px solid var(--light);
|
|
270
285
|
top: 0;
|
|
271
|
-
left:
|
|
272
|
-
width:
|
|
286
|
+
left: 30%;
|
|
287
|
+
width: 50%;
|
|
273
288
|
height: 100%;
|
|
274
289
|
overflow-y: scroll;
|
|
275
290
|
z-index: 1;
|
|
291
|
+
opacity: 0.95;
|
|
276
292
|
}
|
|
277
293
|
|
|
278
294
|
/* JSON viewer */
|
|
295
|
+
.key span {
|
|
296
|
+
color: var(--dark);
|
|
297
|
+
}
|
|
298
|
+
|
|
299
|
+
@media (max-width: 1620px) {
|
|
300
|
+
.container {
|
|
301
|
+
padding: 0 2rem;
|
|
302
|
+
}
|
|
303
|
+
|
|
304
|
+
#popup {
|
|
305
|
+
width: 100%;
|
|
306
|
+
left: 0;
|
|
307
|
+
}
|
|
308
|
+
}
|
|
@@ -155,23 +155,14 @@ export class LogService implements LoggerService {
|
|
|
155
155
|
const args = context.getArgs();
|
|
156
156
|
|
|
157
157
|
for (const arg of args) {
|
|
158
|
-
if (arg.
|
|
159
|
-
res.
|
|
160
|
-
const len = arg.rawHeaders.length - 1;
|
|
161
|
-
|
|
162
|
-
for (let i = 0; i < len; i += 2) {
|
|
163
|
-
res.rawHeaders[arg.rawHeaders[i]] = arg.rawHeaders[i + 1];
|
|
164
|
-
}
|
|
158
|
+
if (arg.method) {
|
|
159
|
+
res.method = arg.method;
|
|
165
160
|
}
|
|
166
161
|
|
|
167
162
|
if (arg.url) {
|
|
168
163
|
res.url = arg.url;
|
|
169
164
|
}
|
|
170
165
|
|
|
171
|
-
if (arg.method) {
|
|
172
|
-
res.method = arg.method;
|
|
173
|
-
}
|
|
174
|
-
|
|
175
166
|
if (arg.params) {
|
|
176
167
|
res.params = arg.params;
|
|
177
168
|
}
|
|
@@ -179,6 +170,15 @@ export class LogService implements LoggerService {
|
|
|
179
170
|
if (arg.body) {
|
|
180
171
|
res.body = arg.body;
|
|
181
172
|
}
|
|
173
|
+
|
|
174
|
+
if (arg.rawHeaders) {
|
|
175
|
+
res.rawHeaders = {};
|
|
176
|
+
const len = arg.rawHeaders.length - 1;
|
|
177
|
+
|
|
178
|
+
for (let i = 0; i < len; i += 2) {
|
|
179
|
+
res.rawHeaders[arg.rawHeaders[i]] = arg.rawHeaders[i + 1];
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
182
|
}
|
|
183
183
|
|
|
184
184
|
return res;
|