xcally-nest-library 0.0.34 → 0.0.35
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/dist/src/modules/db-hooks-subscriber/db-hooks-subscriber.module.d.ts +2 -0
- package/dist/src/modules/db-hooks-subscriber/db-hooks-subscriber.module.js +22 -0
- package/dist/src/modules/db-hooks-subscriber/db-hooks-subscriber.module.js.map +1 -0
- package/dist/src/modules/logger/pino/logger.module.js +2 -0
- package/dist/src/modules/logger/pino/logger.module.js.map +1 -1
- package/dist/src/modules/logger/pino/logger.service.d.ts +5 -1
- package/dist/src/modules/logger/pino/logger.service.js +25 -8
- package/dist/src/modules/logger/pino/logger.service.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +17 -18
- package/src/modules/logger/pino/logger.module.ts +2 -0
- package/src/modules/logger/pino/logger.service.ts +27 -6
package/package.json
CHANGED
@@ -1,27 +1,11 @@
|
|
1
1
|
{
|
2
2
|
"name": "xcally-nest-library",
|
3
|
-
"version": "0.0.
|
3
|
+
"version": "0.0.35",
|
4
4
|
"description": "",
|
5
5
|
"main": "dist/index.js",
|
6
6
|
"types": "dist/index.d.ts",
|
7
7
|
"author": "",
|
8
8
|
"license": "UNLICENSED",
|
9
|
-
"scripts": {
|
10
|
-
"bump:patch": "npm version patch -m \"Bump version to %s\"",
|
11
|
-
"prepublishOnly": "npm run build",
|
12
|
-
"build": "tsc",
|
13
|
-
"build:watch": "rimraf dist && tsc-watch -b -v",
|
14
|
-
"format": "prettier --write \"src/**/*.ts\" \"test/**/*.ts\"",
|
15
|
-
"prettier:check": "prettier --check ./**/*.{ts,js,json,*rc}",
|
16
|
-
"prettier:write": "prettier --write ./**/*.{ts,js,json,*rc}",
|
17
|
-
"start": "nest start",
|
18
|
-
"start:dev": "nest start --watch",
|
19
|
-
"start:debug": "nest start --debug --watch",
|
20
|
-
"start:prod": "node dist/main",
|
21
|
-
"lint": "eslint \"{src,apps,libs,test}/**/*.ts\" --fix",
|
22
|
-
"lib:link": "pnpm link --global",
|
23
|
-
"lib:unlink": "pnpm unlink xcally-nest-libs --global"
|
24
|
-
},
|
25
9
|
"dependencies": {
|
26
10
|
"@nestjs/config": "^4.0.0",
|
27
11
|
"class-transformer": "^0.5.1",
|
@@ -53,5 +37,20 @@
|
|
53
37
|
"@nestjs/common": "^10.0.0 || ^11.0.0",
|
54
38
|
"@nestjs/core": "^10.0.0 || ^11.0.0",
|
55
39
|
"@nestjs/microservices": "^10.0.0 || ^11.0.0"
|
40
|
+
},
|
41
|
+
"scripts": {
|
42
|
+
"bump:patch": "npm version patch -m \"Bump version to %s\"",
|
43
|
+
"build": "tsc",
|
44
|
+
"build:watch": "rimraf dist && tsc-watch -b -v",
|
45
|
+
"format": "prettier --write \"src/**/*.ts\" \"test/**/*.ts\"",
|
46
|
+
"prettier:check": "prettier --check ./**/*.{ts,js,json,*rc}",
|
47
|
+
"prettier:write": "prettier --write ./**/*.{ts,js,json,*rc}",
|
48
|
+
"start": "nest start",
|
49
|
+
"start:dev": "nest start --watch",
|
50
|
+
"start:debug": "nest start --debug --watch",
|
51
|
+
"start:prod": "node dist/main",
|
52
|
+
"lint": "eslint \"{src,apps,libs,test}/**/*.ts\" --fix",
|
53
|
+
"lib:link": "pnpm link --global",
|
54
|
+
"lib:unlink": "pnpm unlink xcally-nest-libs --global"
|
56
55
|
}
|
57
|
-
}
|
56
|
+
}
|
@@ -3,6 +3,7 @@ import { ConfigModule, ConfigService } from '@nestjs/config';
|
|
3
3
|
import { LoggerModule as LoggerModulePino } from 'nestjs-pino';
|
4
4
|
import { LoggerService } from './logger.service';
|
5
5
|
import { LOGGER_OPTIONS } from './constants';
|
6
|
+
import { ClsModule } from 'nestjs-cls';
|
6
7
|
|
7
8
|
export interface LoggerModuleOptions {
|
8
9
|
'resource.service.name': string;
|
@@ -30,6 +31,7 @@ export class LoggerModule {
|
|
30
31
|
providers,
|
31
32
|
exports,
|
32
33
|
imports: [
|
34
|
+
ClsModule,
|
33
35
|
LoggerModulePino.forRootAsync({
|
34
36
|
imports: [ConfigModule],
|
35
37
|
inject: [ConfigService],
|
@@ -2,6 +2,7 @@ import { Inject, Injectable } from '@nestjs/common';
|
|
2
2
|
import { PinoLogger } from 'nestjs-pino';
|
3
3
|
import { LOGGER_OPTIONS } from './constants';
|
4
4
|
import { LoggerModuleOptions } from './logger.module';
|
5
|
+
import { ClsService } from 'nestjs-cls';
|
5
6
|
/**
|
6
7
|
* @interface LoggerMeta
|
7
8
|
* @description Interface representing metadata for logging purposes.
|
@@ -17,19 +18,26 @@ export class LoggerService {
|
|
17
18
|
constructor(
|
18
19
|
@Inject(LOGGER_OPTIONS) private readonly loggerOptions: LoggerModuleOptions,
|
19
20
|
private readonly logger: PinoLogger,
|
21
|
+
private readonly cls: ClsService,
|
20
22
|
) {}
|
21
23
|
|
24
|
+
private withAdditionalTraceId(meta?: LoggerMeta) {
|
25
|
+
const xcTraceId: string | undefined = this.cls.get('xcTraceId');
|
26
|
+
const xcActionId: string | undefined = this.cls.get('xcActionId');
|
27
|
+
return { ...meta, xcTraceId ,xcActionId};
|
28
|
+
}
|
29
|
+
|
22
30
|
debug(msg: string, meta?: LoggerMeta): void {
|
23
|
-
this.logger.debug({ meta, ...this.loggerOptions }, msg);
|
31
|
+
this.logger.debug({ meta: this.withAdditionalTraceId(meta), ...this.loggerOptions }, msg);
|
24
32
|
}
|
25
33
|
warn(msg: string, meta?: LoggerMeta): void {
|
26
|
-
this.logger.warn({ meta, ...this.loggerOptions }, msg);
|
34
|
+
this.logger.warn({ meta: this.withAdditionalTraceId(meta), ...this.loggerOptions }, msg);
|
27
35
|
}
|
28
36
|
error(msg: string, meta?: LoggerMeta): void {
|
29
|
-
this.logger.error({ meta, ...this.loggerOptions }, msg);
|
37
|
+
this.logger.error({ meta: this.withAdditionalTraceId(meta), ...this.loggerOptions }, msg);
|
30
38
|
}
|
31
39
|
fatal(msg: string, meta?: LoggerMeta): void {
|
32
|
-
this.logger.fatal({ meta, ...this.loggerOptions }, msg);
|
40
|
+
this.logger.fatal({ meta: this.withAdditionalTraceId(meta), ...this.loggerOptions }, msg);
|
33
41
|
}
|
34
42
|
|
35
43
|
info(msg: string, meta?: LoggerMeta): void {
|
@@ -42,10 +50,23 @@ export class LoggerService {
|
|
42
50
|
// span.end();
|
43
51
|
// });
|
44
52
|
|
45
|
-
this.logger.info({ meta, ...this.loggerOptions }, msg);
|
53
|
+
this.logger.info({ meta: this.withAdditionalTraceId(meta), ...this.loggerOptions }, msg);
|
46
54
|
}
|
47
55
|
|
48
56
|
trace(msg: string, meta?: LoggerMeta): void {
|
49
|
-
this.logger.trace({ meta, ...this.loggerOptions }, msg);
|
57
|
+
this.logger.trace({ meta: this.withAdditionalTraceId(meta), ...this.loggerOptions }, msg);
|
58
|
+
}
|
59
|
+
|
60
|
+
// Esempio di uso corretto:
|
61
|
+
someMethod() {
|
62
|
+
this.cls.run(() => {
|
63
|
+
this.cls.set('xcTraceId', 'my-trace-id');
|
64
|
+
// Tutto il codice asincrono che parte da qui vedrà il valore
|
65
|
+
this.logger.info('Log con trace id'); // Qui funziona
|
66
|
+
setTimeout(() => {
|
67
|
+
this.logger.info('Anche qui funziona');
|
68
|
+
}, 100);
|
69
|
+
});
|
70
|
+
// Qui fuori il valore NON è disponibile
|
50
71
|
}
|
51
72
|
}
|