nestjs-fox-logger 0.0.2 → 0.0.3
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 +8 -12
- package/dist/fox-logger.service.d.ts +3 -2
- package/dist/fox-logger.service.js +32 -35
- package/dist/fox-logger.service.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/src/fox-logger.service.ts +38 -41
package/package.json
CHANGED
|
@@ -6,7 +6,7 @@ import { FoxLoggerServiceOptions } from './fox-logger.interfaces';
|
|
|
6
6
|
|
|
7
7
|
@Injectable()
|
|
8
8
|
export class FoxLoggerService extends Logger {
|
|
9
|
-
private readonly name?: string;
|
|
9
|
+
private readonly $name?: string;
|
|
10
10
|
|
|
11
11
|
constructor(
|
|
12
12
|
@Inject(FOXLOGGER_SERVICE_OPTIONS)
|
|
@@ -14,54 +14,51 @@ export class FoxLoggerService extends Logger {
|
|
|
14
14
|
private readonly cls?: ClsService,
|
|
15
15
|
) {
|
|
16
16
|
super();
|
|
17
|
-
this
|
|
17
|
+
this.$name = options.name;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* Вынимаем данные из разных объектов ошибок
|
|
22
|
+
* и не только, со статусом и пр.
|
|
23
|
+
*/
|
|
24
|
+
static FormatObjectMessage(msg: object) {
|
|
25
|
+
const prefix = [
|
|
26
|
+
'statusCode' in msg && `[${msg.statusCode}]`,
|
|
27
|
+
'status' in msg && `[${msg.status}]`,
|
|
28
|
+
'error' in msg && `[${msg.error}]`,
|
|
29
|
+
].filter(Boolean);
|
|
30
|
+
if (prefix.length > 0) prefix.push(': ');
|
|
31
|
+
const message = [
|
|
32
|
+
msg['response']?.['data']?.['message'] && `: ${msg['data']['message']}`,
|
|
33
|
+
msg['data']?.['message'] && `: ${msg['data']['message']}`,
|
|
34
|
+
msg['message'] && `${msg['message']}`,
|
|
35
|
+
msg['msg'] && `${msg['msg']}`,
|
|
36
|
+
].filter(Boolean);
|
|
37
|
+
/** Если есть, что отдавать - пишем */
|
|
38
|
+
if (prefix.length + message.length > 0) {
|
|
39
|
+
return prefix.join(``) + message.join(' ');
|
|
40
|
+
}
|
|
41
|
+
return JSON.stringify(msg);
|
|
18
42
|
}
|
|
19
43
|
|
|
20
44
|
/** Получение сообщения из разных видов данных */
|
|
21
|
-
static
|
|
45
|
+
static FormatMessage(msg: unknown) {
|
|
22
46
|
/** делаем сообщение из разных типов данных */
|
|
23
47
|
switch (typeof msg) {
|
|
24
|
-
case 'string':
|
|
25
|
-
return msg;
|
|
26
|
-
case 'number':
|
|
27
|
-
case 'bigint':
|
|
28
|
-
case 'boolean':
|
|
29
|
-
case 'symbol':
|
|
30
|
-
case 'undefined':
|
|
31
|
-
case 'function':
|
|
32
|
-
return String(msg);
|
|
33
48
|
case 'object':
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
* и не только, со статусом и пр.
|
|
37
|
-
*/
|
|
38
|
-
const prefix = [
|
|
39
|
-
'statusCode' in msg && `[${msg.statusCode}]`,
|
|
40
|
-
'status' in msg && `[${msg.status}]`,
|
|
41
|
-
'error' in msg && `[${msg.error}]`,
|
|
42
|
-
].filter(Boolean);
|
|
43
|
-
if (prefix.length > 0) prefix.push(': ');
|
|
44
|
-
const message = [
|
|
45
|
-
msg['response']?.['data']?.['message'] &&
|
|
46
|
-
`: ${msg['data']['message']}`,
|
|
47
|
-
msg['data']?.['message'] && `: ${msg['data']['message']}`,
|
|
48
|
-
msg['message'] && `${msg['message']}`,
|
|
49
|
-
msg['msg'] && `${msg['msg']}`,
|
|
50
|
-
].filter(Boolean);
|
|
51
|
-
/** Если есть, что отдавать - пишем-с */
|
|
52
|
-
if (prefix.length + message.length > 0) {
|
|
53
|
-
return prefix.join(``) + message.join(' ');
|
|
49
|
+
if (Array.isArray(msg)) {
|
|
50
|
+
return msg.map(this.FormatObjectMessage).join(`\n`);
|
|
54
51
|
}
|
|
55
|
-
|
|
52
|
+
return this.FormatObjectMessage(msg);
|
|
56
53
|
default:
|
|
57
|
-
|
|
54
|
+
return String(msg);
|
|
58
55
|
}
|
|
59
56
|
}
|
|
60
57
|
|
|
61
58
|
/** Задаем префикс на базе имени, cls и возможного id */
|
|
62
59
|
private getPrefix(eventId?: string) {
|
|
63
60
|
return (
|
|
64
|
-
`${this
|
|
61
|
+
`${this.$name ? `[${this.$name}]` : ``}` +
|
|
65
62
|
`${this.cls.getId() ? `[${this.cls.getId()}]` : ''}` +
|
|
66
63
|
`${eventId ? `[${eventId}]` : ``}`
|
|
67
64
|
);
|
|
@@ -69,32 +66,32 @@ export class FoxLoggerService extends Logger {
|
|
|
69
66
|
|
|
70
67
|
public log(msg: any, eventId?: string) {
|
|
71
68
|
return Logger.log(
|
|
72
|
-
this.getPrefix(eventId)
|
|
69
|
+
`${this.getPrefix(eventId)}: ${FoxLoggerService.FormatMessage(msg)}`,
|
|
73
70
|
);
|
|
74
71
|
}
|
|
75
72
|
public warn(msg: any, eventId?: string) {
|
|
76
73
|
return Logger.warn(
|
|
77
|
-
this.getPrefix(eventId)
|
|
74
|
+
`${this.getPrefix(eventId)}: ${FoxLoggerService.FormatMessage(msg)}`,
|
|
78
75
|
);
|
|
79
76
|
}
|
|
80
77
|
public debug(msg: any, eventId?: string) {
|
|
81
78
|
return Logger.debug(
|
|
82
|
-
this.getPrefix(eventId)
|
|
79
|
+
`${this.getPrefix(eventId)}: ${FoxLoggerService.FormatMessage(msg)}`,
|
|
83
80
|
);
|
|
84
81
|
}
|
|
85
82
|
public error(msg: any, eventId?: string) {
|
|
86
83
|
return Logger.error(
|
|
87
|
-
this.getPrefix(eventId)
|
|
84
|
+
`${this.getPrefix(eventId)}: ${FoxLoggerService.FormatMessage(msg)}`,
|
|
88
85
|
);
|
|
89
86
|
}
|
|
90
87
|
public verbose(msg: any, eventId?: string) {
|
|
91
88
|
return Logger.verbose(
|
|
92
|
-
this.getPrefix(eventId)
|
|
89
|
+
`${this.getPrefix(eventId)}: ${FoxLoggerService.FormatMessage(msg)}`,
|
|
93
90
|
);
|
|
94
91
|
}
|
|
95
92
|
public fatal(msg: any, eventId?: string) {
|
|
96
93
|
return Logger.fatal(
|
|
97
|
-
this.getPrefix(eventId)
|
|
94
|
+
`${this.getPrefix(eventId)}: ${FoxLoggerService.FormatMessage(msg)}`,
|
|
98
95
|
);
|
|
99
96
|
}
|
|
100
97
|
}
|