@rsdk/logging 4.0.1-next.0 → 4.0.1-next.2
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/CHANGELOG.md +10 -0
- package/dist/logger.factory.d.ts +23 -1
- package/dist/logger.factory.js +37 -7
- package/dist/logger.factory.js.map +1 -1
- package/dist/types.d.ts +3 -3
- package/package.json +3 -3
- package/src/logger.factory.ts +43 -10
- package/src/types.ts +3 -3
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,16 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
## [4.0.1-next.2](https://github.com/R-Vision/rsdk/compare/v4.0.1-next.1...v4.0.1-next.2) (2023-12-07)
|
|
7
|
+
|
|
8
|
+
### Bug Fixes
|
|
9
|
+
|
|
10
|
+
* **db:** added queued initialization db context ([#169](https://github.com/R-Vision/rsdk/issues/169)) ([ea481ed](https://github.com/R-Vision/rsdk/commit/ea481edce9bbc7bd702fc046a37fb5a5580a88dd))
|
|
11
|
+
|
|
12
|
+
## [4.0.1-next.1](https://github.com/R-Vision/rsdk/compare/v4.0.0...v4.0.1-next.1) (2023-12-06)
|
|
13
|
+
|
|
14
|
+
**Note:** Version bump only for package @rsdk/logging
|
|
15
|
+
|
|
6
16
|
## [4.0.1-next.0](https://github.com/R-Vision/rsdk/compare/v4.0.0...v4.0.1-next.0) (2023-12-06)
|
|
7
17
|
|
|
8
18
|
**Note:** Version bump only for package @rsdk/logging
|
package/dist/logger.factory.d.ts
CHANGED
|
@@ -5,6 +5,14 @@ import type { LoggerOptions, LoggingContext, OnMessage } from './types';
|
|
|
5
5
|
* Фабрика является статической потому что
|
|
6
6
|
*/
|
|
7
7
|
export declare class LoggerFactory {
|
|
8
|
+
/**
|
|
9
|
+
* Переконфигурация pino нужна потому, что изначально логгер инициализируется
|
|
10
|
+
* с дефолтными настройками, т. к. конфигурация ещё не прочитана.
|
|
11
|
+
*
|
|
12
|
+
* FIXME: Это грязно. Надо придумать решение получше.
|
|
13
|
+
* @param opts Опции логгер
|
|
14
|
+
*/
|
|
15
|
+
static reconfigure(opts: Partial<LoggerOptions>): void;
|
|
8
16
|
/**
|
|
9
17
|
* Under the hood every logger instance will use this
|
|
10
18
|
* static instance. Motivation for this is that it's much
|
|
@@ -16,7 +24,21 @@ export declare class LoggerFactory {
|
|
|
16
24
|
*/
|
|
17
25
|
private static _globalPino;
|
|
18
26
|
private static events;
|
|
19
|
-
|
|
27
|
+
/**
|
|
28
|
+
* Этот метод должен быть вызван после того, как подключен instrumentation-pino.
|
|
29
|
+
* Пакет instrumentation-pino модифицирует require. Согласно предполагаемому автором
|
|
30
|
+
* библиотеки сценарию использования, нужно сначала выполнять эту модификацию, а
|
|
31
|
+
* уже потом делать require(import) pino.
|
|
32
|
+
*
|
|
33
|
+
* У нас pino импортируется раньше - на этапе сборки NestContainer. Мы не можем
|
|
34
|
+
* воткнуть auto-instrumentation-node вперёд инициализации контейнера потому,
|
|
35
|
+
* что мы хотим, чтобы подключение инструментирование зависело от настройки
|
|
36
|
+
* TRACING_ENABLED. Т. е. нас сначала нужно полностью инициализировать систему
|
|
37
|
+
* конфигурации, а уже потом решать - делать инструментирование или нет.
|
|
38
|
+
*/
|
|
39
|
+
static applyInstrumentations(): void;
|
|
40
|
+
private static opts;
|
|
20
41
|
static onMessage(handler: OnMessage): void;
|
|
21
42
|
static create(context: LoggingContext): ILogger;
|
|
43
|
+
private static applyOptions;
|
|
22
44
|
}
|
package/dist/logger.factory.js
CHANGED
|
@@ -13,6 +13,18 @@ const implementations_1 = require("./implementations");
|
|
|
13
13
|
* Фабрика является статической потому что
|
|
14
14
|
*/
|
|
15
15
|
class LoggerFactory {
|
|
16
|
+
/**
|
|
17
|
+
* Переконфигурация pino нужна потому, что изначально логгер инициализируется
|
|
18
|
+
* с дефолтными настройками, т. к. конфигурация ещё не прочитана.
|
|
19
|
+
*
|
|
20
|
+
* FIXME: Это грязно. Надо придумать решение получше.
|
|
21
|
+
* @param opts Опции логгер
|
|
22
|
+
*/
|
|
23
|
+
static reconfigure(opts) {
|
|
24
|
+
this.applyOptions(opts);
|
|
25
|
+
const { stream, ...other } = this.opts;
|
|
26
|
+
this._globalPino = (0, pino_1.default)(other, stream);
|
|
27
|
+
}
|
|
16
28
|
/**
|
|
17
29
|
* Under the hood every logger instance will use this
|
|
18
30
|
* static instance. Motivation for this is that it's much
|
|
@@ -27,20 +39,38 @@ class LoggerFactory {
|
|
|
27
39
|
});
|
|
28
40
|
// eslint-disable-next-line unicorn/prefer-event-target
|
|
29
41
|
static events = new node_events_1.default();
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
42
|
+
/**
|
|
43
|
+
* Этот метод должен быть вызван после того, как подключен instrumentation-pino.
|
|
44
|
+
* Пакет instrumentation-pino модифицирует require. Согласно предполагаемому автором
|
|
45
|
+
* библиотеки сценарию использования, нужно сначала выполнять эту модификацию, а
|
|
46
|
+
* уже потом делать require(import) pino.
|
|
47
|
+
*
|
|
48
|
+
* У нас pino импортируется раньше - на этапе сборки NestContainer. Мы не можем
|
|
49
|
+
* воткнуть auto-instrumentation-node вперёд инициализации контейнера потому,
|
|
50
|
+
* что мы хотим, чтобы подключение инструментирование зависело от настройки
|
|
51
|
+
* TRACING_ENABLED. Т. е. нас сначала нужно полностью инициализировать систему
|
|
52
|
+
* конфигурации, а уже потом решать - делать инструментирование или нет.
|
|
53
|
+
*/
|
|
54
|
+
static applyInstrumentations() {
|
|
55
|
+
const { stream, ...other } = this.opts;
|
|
56
|
+
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
57
|
+
this._globalPino = require('pino')(other, stream);
|
|
37
58
|
}
|
|
59
|
+
static opts = {
|
|
60
|
+
level: defaults_1.DEFAULT_LEVEL,
|
|
61
|
+
redact: [],
|
|
62
|
+
stream: pino_1.default.destination(),
|
|
63
|
+
};
|
|
38
64
|
static onMessage(handler) {
|
|
39
65
|
this.events.on('msg', handler);
|
|
40
66
|
}
|
|
41
67
|
static create(context) {
|
|
42
68
|
return new implementations_1.PinoLogger(() => this._globalPino, (level, data) => this.events.emit('msg', level, data), context);
|
|
43
69
|
}
|
|
70
|
+
static applyOptions(opts) {
|
|
71
|
+
const { redact, level, stream = pino_1.default.destination() } = opts || {};
|
|
72
|
+
Object.assign(this.opts, { redact, level: level ?? defaults_1.DEFAULT_LEVEL, stream });
|
|
73
|
+
}
|
|
44
74
|
}
|
|
45
75
|
exports.LoggerFactory = LoggerFactory;
|
|
46
76
|
//# sourceMappingURL=logger.factory.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.factory.js","sourceRoot":"","sources":["../src/logger.factory.ts"],"names":[],"mappings":";;;;;;AAAA,8DAAuC;AAEvC,gDAAwB;AAExB,yCAA2C;AAC3C,uDAA+C;AAS/C;;;GAGG;AACH,MAAa,aAAa;IACxB;;;;;;;;OAQG;IACK,MAAM,CAAC,WAAW,GAAS,IAAA,cAAI,EAAC;QACtC,KAAK,EAAE,wBAAa;KACrB,CAAC,CAAC;IAEH,uDAAuD;IAC/C,MAAM,CAAC,MAAM,GAAG,IAAI,qBAAY,EAAE,CAAC;IAE3C,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"logger.factory.js","sourceRoot":"","sources":["../src/logger.factory.ts"],"names":[],"mappings":";;;;;;AAAA,8DAAuC;AAEvC,gDAAwB;AAExB,yCAA2C;AAC3C,uDAA+C;AAS/C;;;GAGG;AACH,MAAa,aAAa;IACxB;;;;;;OAMG;IACH,MAAM,CAAC,WAAW,CAAC,IAA4B;QAC7C,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QAExB,MAAM,EAAE,MAAM,EAAE,GAAG,KAAK,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC;QAEvC,IAAI,CAAC,WAAW,GAAG,IAAA,cAAI,EAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACzC,CAAC;IAED;;;;;;;;OAQG;IACK,MAAM,CAAC,WAAW,GAAS,IAAA,cAAI,EAAC;QACtC,KAAK,EAAE,wBAAa;KACrB,CAAC,CAAC;IAEH,uDAAuD;IAC/C,MAAM,CAAC,MAAM,GAAG,IAAI,qBAAY,EAAE,CAAC;IAE3C;;;;;;;;;;;OAWG;IACH,MAAM,CAAC,qBAAqB;QAC1B,MAAM,EAAE,MAAM,EAAE,GAAG,KAAK,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC;QAEvC,8DAA8D;QAC9D,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACpD,CAAC;IAEO,MAAM,CAAC,IAAI,GAAkB;QACnC,KAAK,EAAE,wBAAa;QACpB,MAAM,EAAE,EAAE;QACV,MAAM,EAAE,cAAI,CAAC,WAAW,EAAE;KAC3B,CAAC;IAEF,MAAM,CAAC,SAAS,CAAC,OAAkB;QACjC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACjC,CAAC;IAED,MAAM,CAAC,MAAM,CAAC,OAAuB;QACnC,OAAO,IAAI,4BAAU,CACnB,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,EACtB,CAAC,KAAe,EAAE,IAAa,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,EACxE,OAAO,CACR,CAAC;IACJ,CAAC;IAEO,MAAM,CAAC,YAAY,CAAC,IAA4B;QACtD,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,cAAI,CAAC,WAAW,EAAE,EAAE,GAAG,IAAI,IAAI,EAAE,CAAC;QAElE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,IAAI,wBAAa,EAAE,MAAM,EAAE,CAAC,CAAC;IAC9E,CAAC;;AAzEH,sCA0EC"}
|
package/dist/types.d.ts
CHANGED
|
@@ -10,9 +10,9 @@ export declare enum LogLevel {
|
|
|
10
10
|
}
|
|
11
11
|
export type Params = Record<string, unknown>;
|
|
12
12
|
export interface LoggerOptions {
|
|
13
|
-
level
|
|
14
|
-
redact
|
|
15
|
-
stream
|
|
13
|
+
level: LogLevel;
|
|
14
|
+
redact: string[];
|
|
15
|
+
stream: pino.DestinationStream;
|
|
16
16
|
}
|
|
17
17
|
export type LoggingContext = string | Constructor;
|
|
18
18
|
export type OnMessage = (level: LogLevel, data: object) => void;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rsdk/logging",
|
|
3
|
-
"version": "4.0.1-next.
|
|
3
|
+
"version": "4.0.1-next.2",
|
|
4
4
|
"description": "Base framework independent logging functionality",
|
|
5
5
|
"license": "Apache License 2.0",
|
|
6
6
|
"publishConfig": {
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
"rxjs": "^7.8.1"
|
|
19
19
|
},
|
|
20
20
|
"peerDependencies": {
|
|
21
|
-
"@rsdk/common": "^4.0.1-next.
|
|
21
|
+
"@rsdk/common": "^4.0.1-next.2"
|
|
22
22
|
},
|
|
23
|
-
"gitHead": "
|
|
23
|
+
"gitHead": "f48f893ffc6bccdfd5a0b703cc377a3a770581ff"
|
|
24
24
|
}
|
package/src/logger.factory.ts
CHANGED
|
@@ -17,6 +17,21 @@ import type {
|
|
|
17
17
|
* Фабрика является статической потому что
|
|
18
18
|
*/
|
|
19
19
|
export class LoggerFactory {
|
|
20
|
+
/**
|
|
21
|
+
* Переконфигурация pino нужна потому, что изначально логгер инициализируется
|
|
22
|
+
* с дефолтными настройками, т. к. конфигурация ещё не прочитана.
|
|
23
|
+
*
|
|
24
|
+
* FIXME: Это грязно. Надо придумать решение получше.
|
|
25
|
+
* @param opts Опции логгер
|
|
26
|
+
*/
|
|
27
|
+
static reconfigure(opts: Partial<LoggerOptions>): void {
|
|
28
|
+
this.applyOptions(opts);
|
|
29
|
+
|
|
30
|
+
const { stream, ...other } = this.opts;
|
|
31
|
+
|
|
32
|
+
this._globalPino = pino(other, stream);
|
|
33
|
+
}
|
|
34
|
+
|
|
20
35
|
/**
|
|
21
36
|
* Under the hood every logger instance will use this
|
|
22
37
|
* static instance. Motivation for this is that it's much
|
|
@@ -33,19 +48,31 @@ export class LoggerFactory {
|
|
|
33
48
|
// eslint-disable-next-line unicorn/prefer-event-target
|
|
34
49
|
private static events = new EventEmitter();
|
|
35
50
|
|
|
36
|
-
|
|
37
|
-
|
|
51
|
+
/**
|
|
52
|
+
* Этот метод должен быть вызван после того, как подключен instrumentation-pino.
|
|
53
|
+
* Пакет instrumentation-pino модифицирует require. Согласно предполагаемому автором
|
|
54
|
+
* библиотеки сценарию использования, нужно сначала выполнять эту модификацию, а
|
|
55
|
+
* уже потом делать require(import) pino.
|
|
56
|
+
*
|
|
57
|
+
* У нас pino импортируется раньше - на этапе сборки NestContainer. Мы не можем
|
|
58
|
+
* воткнуть auto-instrumentation-node вперёд инициализации контейнера потому,
|
|
59
|
+
* что мы хотим, чтобы подключение инструментирование зависело от настройки
|
|
60
|
+
* TRACING_ENABLED. Т. е. нас сначала нужно полностью инициализировать систему
|
|
61
|
+
* конфигурации, а уже потом решать - делать инструментирование или нет.
|
|
62
|
+
*/
|
|
63
|
+
static applyInstrumentations(): void {
|
|
64
|
+
const { stream, ...other } = this.opts;
|
|
38
65
|
|
|
39
|
-
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
40
|
-
this._globalPino = pino(
|
|
41
|
-
{
|
|
42
|
-
level: level ?? DEFAULT_LEVEL,
|
|
43
|
-
...(redact && { redact }),
|
|
44
|
-
},
|
|
45
|
-
stream,
|
|
46
|
-
);
|
|
66
|
+
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
67
|
+
this._globalPino = require('pino')(other, stream);
|
|
47
68
|
}
|
|
48
69
|
|
|
70
|
+
private static opts: LoggerOptions = {
|
|
71
|
+
level: DEFAULT_LEVEL,
|
|
72
|
+
redact: [],
|
|
73
|
+
stream: pino.destination(),
|
|
74
|
+
};
|
|
75
|
+
|
|
49
76
|
static onMessage(handler: OnMessage): void {
|
|
50
77
|
this.events.on('msg', handler);
|
|
51
78
|
}
|
|
@@ -57,4 +84,10 @@ export class LoggerFactory {
|
|
|
57
84
|
context,
|
|
58
85
|
);
|
|
59
86
|
}
|
|
87
|
+
|
|
88
|
+
private static applyOptions(opts: Partial<LoggerOptions>): void {
|
|
89
|
+
const { redact, level, stream = pino.destination() } = opts || {};
|
|
90
|
+
|
|
91
|
+
Object.assign(this.opts, { redact, level: level ?? DEFAULT_LEVEL, stream });
|
|
92
|
+
}
|
|
60
93
|
}
|
package/src/types.ts
CHANGED
|
@@ -13,9 +13,9 @@ export enum LogLevel {
|
|
|
13
13
|
export type Params = Record<string, unknown>;
|
|
14
14
|
|
|
15
15
|
export interface LoggerOptions {
|
|
16
|
-
level
|
|
17
|
-
redact
|
|
18
|
-
stream
|
|
16
|
+
level: LogLevel;
|
|
17
|
+
redact: string[];
|
|
18
|
+
stream: pino.DestinationStream;
|
|
19
19
|
}
|
|
20
20
|
|
|
21
21
|
export type LoggingContext = string | Constructor;
|