@rsdk/core 6.0.0-next.20 → 6.0.0-next.22
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/exceptions/base/platform-exception.absract.d.ts +9 -0
- package/dist/exceptions/base/platform-exception.absract.js +5 -0
- package/dist/exceptions/base/platform-exception.absract.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/logging/exception-severity-to-log-level.d.ts +3 -0
- package/dist/logging/exception-severity-to-log-level.js +10 -0
- package/dist/logging/exception-severity-to-log-level.js.map +1 -0
- package/dist/logging/index.d.ts +1 -0
- package/dist/logging/index.js +3 -1
- package/dist/logging/index.js.map +1 -1
- package/dist/logging/logging.interceptor.js +2 -1
- package/dist/logging/logging.interceptor.js.map +1 -1
- package/package.json +2 -2
- package/src/exceptions/base/platform-exception.absract.ts +13 -0
- package/src/index.ts +6 -1
- package/src/logging/exception-severity-to-log-level.ts +11 -0
- package/src/logging/index.ts +1 -0
- package/src/logging/logging.interceptor.ts +11 -6
- package/test/logging.interceptor.spec.ts +17 -7
|
@@ -1,9 +1,14 @@
|
|
|
1
|
+
import type { ExceptionSeverity } from '@rsdk/common';
|
|
1
2
|
export type ExceptionCode = string | number;
|
|
2
3
|
export interface ExceptionsProps<T = any> {
|
|
3
4
|
/**
|
|
4
5
|
* Custom exception code
|
|
5
6
|
*/
|
|
6
7
|
code?: ExceptionCode | undefined;
|
|
8
|
+
/**
|
|
9
|
+
* Severity level of exception
|
|
10
|
+
*/
|
|
11
|
+
severity?: ExceptionSeverity | undefined;
|
|
7
12
|
/**
|
|
8
13
|
* Wrapped original error
|
|
9
14
|
*/
|
|
@@ -28,6 +33,10 @@ export declare abstract class PlatformException<T = any> extends Error {
|
|
|
28
33
|
* Required!
|
|
29
34
|
*/
|
|
30
35
|
readonly code: ExceptionCode;
|
|
36
|
+
/**
|
|
37
|
+
* Exception severity
|
|
38
|
+
*/
|
|
39
|
+
readonly severity: ExceptionSeverity;
|
|
31
40
|
/**
|
|
32
41
|
* PlatformException has ability to wrap original errors. Such an option exists
|
|
33
42
|
* in many other languages and frameworks: .NET, Java, Go etc.
|
|
@@ -16,6 +16,10 @@ class PlatformException extends Error {
|
|
|
16
16
|
* Required!
|
|
17
17
|
*/
|
|
18
18
|
code;
|
|
19
|
+
/**
|
|
20
|
+
* Exception severity
|
|
21
|
+
*/
|
|
22
|
+
severity;
|
|
19
23
|
/**
|
|
20
24
|
* PlatformException has ability to wrap original errors. Such an option exists
|
|
21
25
|
* in many other languages and frameworks: .NET, Java, Go etc.
|
|
@@ -36,6 +40,7 @@ class PlatformException extends Error {
|
|
|
36
40
|
super(message);
|
|
37
41
|
this.metatype = this.constructor.name;
|
|
38
42
|
this.code = code;
|
|
43
|
+
this.severity = props?.severity ?? 'error';
|
|
39
44
|
this.cause = props?.cause;
|
|
40
45
|
this.details = props?.details;
|
|
41
46
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"platform-exception.absract.js","sourceRoot":"","sources":["../../../src/exceptions/base/platform-exception.absract.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"platform-exception.absract.js","sourceRoot":"","sources":["../../../src/exceptions/base/platform-exception.absract.ts"],"names":[],"mappings":";;;AA0BA;;;;;GAKG;AACH,MAAsB,iBAA2B,SAAQ,KAAK;IAC5D;;OAEG;IACM,QAAQ,CAAS;IAE1B;;OAEG;IACM,IAAI,CAAgB;IAE7B;;OAEG;IACM,QAAQ,CAAoB;IAErC;;;OAGG;IACe,KAAK,CAAsB;IAE7C;;;;OAIG;IACM,OAAO,CAAgB;IAEhC;;;;OAIG;IACH,YACE,IAAmB,EACnB,OAAe,EACf,KAAwC;QAExC,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;QACtC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,QAAQ,GAAG,KAAK,EAAE,QAAQ,IAAI,OAAO,CAAC;QAC3C,IAAI,CAAC,KAAK,GAAG,KAAK,EAAE,KAAK,CAAC;QAC1B,IAAI,CAAC,OAAO,GAAG,KAAK,EAAE,OAAO,CAAC;IAChC,CAAC;IAED,MAAM,CAAC,aAAa,CAAC,EAAS;QAC5B,IACE,CAAC,EAAE;YACH,CAAC,CAAC,EAAE,YAAY,iBAAiB,CAAC;YAClC,CAAC,EAAE,CAAC,KAAK;YACT,CAAC,CAAC,EAAE,CAAC,KAAK,YAAY,KAAK,CAAC,EAC5B,CAAC;YACD,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,iBAAiB,CAAC,aAAa,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IAC1E,CAAC;CACF;AA3DD,8CA2DC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -15,7 +15,7 @@ export { PlatformContext } from './platform.context';
|
|
|
15
15
|
export * from './config';
|
|
16
16
|
export * from './exceptions';
|
|
17
17
|
export * from './exceptions.handling';
|
|
18
|
-
export { InjectLogger, LogFormatter, LogLevel } from './logging';
|
|
18
|
+
export { InjectLogger, LogFormatter, LogLevel, EXCEPTION_SEVERITY_TO_LOG_LEVEL, } from './logging';
|
|
19
19
|
export { AnyMetric, Counter, Gauge, Histogram, Metric, MetricsModule, Summary, register, } from './metrics';
|
|
20
20
|
export { PlatformApp } from './app/platform.app';
|
|
21
21
|
export * from './types';
|
package/dist/index.js
CHANGED
|
@@ -14,7 +14,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
exports.FsPathParser = exports.TimespanParser = exports.UrlParser = exports.StringParser = exports.SizeParser = exports.NumberParser = exports.JsonParser = exports.IntParser = exports.EnumParser = exports.BoolParser = exports.ArrayParser = exports.TracingHeaders = exports.RequestIdGenStrategy = exports.generateDefault = exports.withPrefix = exports.PlatformApp = exports.register = exports.Summary = exports.MetricsModule = exports.Metric = exports.Histogram = exports.Gauge = exports.Counter = exports.LogLevel = exports.InjectLogger = exports.PlatformContext = exports.ConfigTag = exports.CheckResult = exports.Indicator = exports.getLoggerToken = exports.HealthChecksService = exports.PingIndicator = exports.FileSystemIndicator = exports.NoSpan = exports.Span = exports.ProtocolDetector = exports.Manifest = exports.APP_SCOPE = void 0;
|
|
17
|
+
exports.FsPathParser = exports.TimespanParser = exports.UrlParser = exports.StringParser = exports.SizeParser = exports.NumberParser = exports.JsonParser = exports.IntParser = exports.EnumParser = exports.BoolParser = exports.ArrayParser = exports.TracingHeaders = exports.RequestIdGenStrategy = exports.generateDefault = exports.withPrefix = exports.PlatformApp = exports.register = exports.Summary = exports.MetricsModule = exports.Metric = exports.Histogram = exports.Gauge = exports.Counter = exports.EXCEPTION_SEVERITY_TO_LOG_LEVEL = exports.LogLevel = exports.InjectLogger = exports.PlatformContext = exports.ConfigTag = exports.CheckResult = exports.Indicator = exports.getLoggerToken = exports.HealthChecksService = exports.PingIndicator = exports.FileSystemIndicator = exports.NoSpan = exports.Span = exports.ProtocolDetector = exports.Manifest = exports.APP_SCOPE = void 0;
|
|
18
18
|
require("./unhandled-rejection.handler");
|
|
19
19
|
var app_metadata_const_1 = require("./app-metadata/app-metadata.const");
|
|
20
20
|
Object.defineProperty(exports, "APP_SCOPE", { enumerable: true, get: function () { return app_metadata_const_1.APP_SCOPE; } });
|
|
@@ -46,6 +46,7 @@ __exportStar(require("./exceptions.handling"), exports);
|
|
|
46
46
|
var logging_1 = require("./logging");
|
|
47
47
|
Object.defineProperty(exports, "InjectLogger", { enumerable: true, get: function () { return logging_1.InjectLogger; } });
|
|
48
48
|
Object.defineProperty(exports, "LogLevel", { enumerable: true, get: function () { return logging_1.LogLevel; } });
|
|
49
|
+
Object.defineProperty(exports, "EXCEPTION_SEVERITY_TO_LOG_LEVEL", { enumerable: true, get: function () { return logging_1.EXCEPTION_SEVERITY_TO_LOG_LEVEL; } });
|
|
49
50
|
var metrics_1 = require("./metrics");
|
|
50
51
|
Object.defineProperty(exports, "Counter", { enumerable: true, get: function () { return metrics_1.Counter; } });
|
|
51
52
|
Object.defineProperty(exports, "Gauge", { enumerable: true, get: function () { return metrics_1.Gauge; } });
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,yCAAuC;AAEvC,wEAA8D;AAArD,+GAAA,SAAS,OAAA;AAElB,gDAA+C;AAAtC,oGAAA,QAAQ,OAAA;AAEjB,mEAAiE;AAAxD,qHAAA,gBAAgB,OAAA;AAEzB,qCAAgE;AAAhC,+FAAA,IAAI,OAAA;AAAE,iGAAA,MAAM,OAAA;AAE5C,oEAKsC;AAHpC,0HAAA,mBAAmB,OAAA;AAEnB,oHAAA,aAAa,OAAA;AAGf,0DAA8D;AAArD,qHAAA,mBAAmB,OAAA;AAI5B,6CAAmD;AAA1C,yGAAA,cAAc,OAAA;AAEvB,6EAAkE;AAAzD,gHAAA,SAAS,OAAA;AAIlB,4CAA+C;AAAtC,sGAAA,WAAW,OAAA;AAEpB,sDAAkD;AAAzC,yGAAA,SAAS,OAAA;AAElB,uDAAqD;AAA5C,mHAAA,eAAe,OAAA;AAExB,2CAAyB;AAEzB,+CAA6B;AAE7B,wDAAsC;AAEtC,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,yCAAuC;AAEvC,wEAA8D;AAArD,+GAAA,SAAS,OAAA;AAElB,gDAA+C;AAAtC,oGAAA,QAAQ,OAAA;AAEjB,mEAAiE;AAAxD,qHAAA,gBAAgB,OAAA;AAEzB,qCAAgE;AAAhC,+FAAA,IAAI,OAAA;AAAE,iGAAA,MAAM,OAAA;AAE5C,oEAKsC;AAHpC,0HAAA,mBAAmB,OAAA;AAEnB,oHAAA,aAAa,OAAA;AAGf,0DAA8D;AAArD,qHAAA,mBAAmB,OAAA;AAI5B,6CAAmD;AAA1C,yGAAA,cAAc,OAAA;AAEvB,6EAAkE;AAAzD,gHAAA,SAAS,OAAA;AAIlB,4CAA+C;AAAtC,sGAAA,WAAW,OAAA;AAEpB,sDAAkD;AAAzC,yGAAA,SAAS,OAAA;AAElB,uDAAqD;AAA5C,mHAAA,eAAe,OAAA;AAExB,2CAAyB;AAEzB,+CAA6B;AAE7B,wDAAsC;AAEtC,qCAKmB;AAJjB,uGAAA,YAAY,OAAA;AAEZ,mGAAA,QAAQ,OAAA;AACR,0HAAA,+BAA+B,OAAA;AAGjC,qCASmB;AAPjB,kGAAA,OAAO,OAAA;AACP,gGAAA,KAAK,OAAA;AACL,oGAAA,SAAS,OAAA;AACT,iGAAA,MAAM,OAAA;AACN,wGAAA,aAAa,OAAA;AACb,kGAAA,OAAO,OAAA;AACP,mGAAA,QAAQ,OAAA;AAGV,mDAAiD;AAAxC,2GAAA,WAAW,OAAA;AAEpB,0CAAwB;AAExB,4DAA0C;AAE1C,oEAAkD;AAElD,qCAKmB;AAJjB,qGAAA,UAAU,OAAA;AACV,0GAAA,eAAe,OAAA;AACf,+GAAA,oBAAoB,OAAA;AACpB,yGAAA,cAAc,OAAA;AAGhB;;GAEG;AAEH,uCAkCsB;AAjCpB,6CAA6C;AAC7C,mDAAmD;AACnD,qGAAA,WAAW,OAAA;AAEX,mDAAmD;AACnD,oGAAA,UAAU,OAAA;AAEV,mDAAmD;AACnD,oGAAA,UAAU,OAAA;AAEV,mDAAmD;AACnD,mGAAA,SAAS,OAAA;AAET,mDAAmD;AACnD,oGAAA,UAAU,OAAA;AAEV,mDAAmD;AACnD,sGAAA,YAAY,OAAA;AAKZ,mDAAmD;AACnD,oGAAA,UAAU,OAAA;AAEV,mDAAmD;AACnD,sGAAA,YAAY,OAAA;AAEZ,mDAAmD;AACnD,mGAAA,SAAS,OAAA;AAET,mDAAmD;AACnD,wGAAA,cAAc,OAAA;AAGhB,iDAI2B;AAHzB,2DAA2D;AAC3D,wDAAwD;AACxD,2GAAA,YAAY,OAAA"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.EXCEPTION_SEVERITY_TO_LOG_LEVEL = void 0;
|
|
4
|
+
const logging_1 = require("@rsdk/logging");
|
|
5
|
+
exports.EXCEPTION_SEVERITY_TO_LOG_LEVEL = {
|
|
6
|
+
warn: logging_1.LogLevel.warn,
|
|
7
|
+
error: logging_1.LogLevel.error,
|
|
8
|
+
fatal: logging_1.LogLevel.fatal,
|
|
9
|
+
};
|
|
10
|
+
//# sourceMappingURL=exception-severity-to-log-level.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"exception-severity-to-log-level.js","sourceRoot":"","sources":["../../src/logging/exception-severity-to-log-level.ts"],"names":[],"mappings":";;;AACA,2CAAyC;AAE5B,QAAA,+BAA+B,GAGxC;IACF,IAAI,EAAE,kBAAQ,CAAC,IAAI;IACnB,KAAK,EAAE,kBAAQ,CAAC,KAAK;IACrB,KAAK,EAAE,kBAAQ,CAAC,KAAK;CACtB,CAAC"}
|
package/dist/logging/index.d.ts
CHANGED
package/dist/logging/index.js
CHANGED
|
@@ -14,8 +14,10 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
exports.LoggingCoreModule = exports.LoggerInstancesModule = exports.LOGGING_RSDK_METADATA_SCOPE = void 0;
|
|
17
|
+
exports.LoggingCoreModule = exports.LoggerInstancesModule = exports.LOGGING_RSDK_METADATA_SCOPE = exports.EXCEPTION_SEVERITY_TO_LOG_LEVEL = void 0;
|
|
18
18
|
__exportStar(require("@rsdk/logging"), exports);
|
|
19
|
+
var exception_severity_to_log_level_1 = require("./exception-severity-to-log-level");
|
|
20
|
+
Object.defineProperty(exports, "EXCEPTION_SEVERITY_TO_LOG_LEVEL", { enumerable: true, get: function () { return exception_severity_to_log_level_1.EXCEPTION_SEVERITY_TO_LOG_LEVEL; } });
|
|
19
21
|
__exportStar(require("./adapters"), exports);
|
|
20
22
|
__exportStar(require("./decorators"), exports);
|
|
21
23
|
__exportStar(require("./formatters"), exports);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/logging/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,gDAA8B;AAC9B,6CAA2B;AAC3B,+CAA6B;AAC7B,+CAA6B;AAC7B,kDAAmE;AAA1D,wHAAA,2BAA2B,OAAA;AAEpC,uEAAmE;AAA1D,iIAAA,qBAAqB,OAAA;AAC9B,6DAA0D;AAAjD,wHAAA,iBAAiB,OAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/logging/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,gDAA8B;AAC9B,qFAAoF;AAA3E,kJAAA,+BAA+B,OAAA;AACxC,6CAA2B;AAC3B,+CAA6B;AAC7B,+CAA6B;AAC7B,kDAAmE;AAA1D,wHAAA,2BAA2B,OAAA;AAEpC,uEAAmE;AAA1D,iIAAA,qBAAqB,OAAA;AAC9B,6DAA0D;AAAjD,wHAAA,iBAAiB,OAAA"}
|
|
@@ -19,6 +19,7 @@ const rxjs_1 = require("rxjs");
|
|
|
19
19
|
const protocol_detector_1 = require("../transport/protocol.detector");
|
|
20
20
|
const inject_logger_decorator_1 = require("./decorators/inject-logger.decorator");
|
|
21
21
|
const constants_1 = require("./constants");
|
|
22
|
+
const exception_severity_to_log_level_1 = require("./exception-severity-to-log-level");
|
|
22
23
|
const formatters_1 = require("./formatters");
|
|
23
24
|
const logging_config_1 = require("./logging.config");
|
|
24
25
|
/**
|
|
@@ -83,7 +84,7 @@ let LoggingInterceptor = class LoggingInterceptor {
|
|
|
83
84
|
const request = isExcluded || !['trace', 'debug'].includes(level)
|
|
84
85
|
? requestDetails
|
|
85
86
|
: '[ALREADY LOGGED]';
|
|
86
|
-
this.logger.
|
|
87
|
+
this.logger.log(exception_severity_to_log_level_1.EXCEPTION_SEVERITY_TO_LOG_LEVEL[ex.severity], `Failed [${protocol.toUpperCase()}] ${path}`, {
|
|
87
88
|
request,
|
|
88
89
|
cause: ex,
|
|
89
90
|
path,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logging.interceptor.js","sourceRoot":"","sources":["../../src/logging/logging.interceptor.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAKA,2CAAoD;AAEpD,uCAAmC;AAEnC,+BAAmD;AAGnD,sEAAkE;AAElE,kFAAoE;AACpE,2CAA6C;AAC7C,6CAAiE;AACjE,qDAAiD;AAEjD;;;;;;;;;;;;;;;;;;;;GAoBG;AAGI,IAAM,kBAAkB,GAAxB,MAAM,kBAAkB;IAKV;IAEA;IACT;IACA;IARO,gBAAgB,GAAG,IAAI,gCAAmB,EAAE,CAAC;IAE9D,YAEmB,MAAe,EAEf,UAAqC,EAC9C,QAA0B,EAC1B,MAAqB;QAJZ,WAAM,GAAN,MAAM,CAAS;QAEf,eAAU,GAAV,UAAU,CAA2B;QAC9C,aAAQ,GAAR,QAAQ,CAAkB;QAC1B,WAAM,GAAN,MAAM,CAAe;IAC5B,CAAC;IAEJ,SAAS,CACP,OAAyB,EACzB,IAAsB;QAEtB,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAE9B,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAEpD,MAAM,SAAS,GAAiB,QAAQ;YACtC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC;YAC7B,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC;QAE1B,MAAM,SAAS,GAAG,SAAS,CAAC,SAAS,EAAE,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC;QACzD,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC;QACvB,CAAC;QAED,MAAM,EAAE,cAAc,EAAE,eAAe,EAAE,YAAY,EAAE,KAAK,EAAE,GAC5D,IAAI,CAAC,MAAM,CAAC;QAEd,MAAM,IAAI,GAAG,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACxC,MAAM,cAAc,GAAG,SAAS,CAAC,aAAa,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;QAExE,MAAM,IAAI,GAAG,YAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QACzC,MAAM,UAAU,GAAG,CAAC,CAAC,IAAI,IAAI,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAEzD,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,iBAAiB,QAAQ,CAAC,WAAW,EAAE,KAAK,IAAI,EAAE,EAAE;gBACpE,OAAO,EAAE,cAAc;gBACvB,IAAI;gBACJ,IAAI;aACL,CAAC,CAAC;QACL,CAAC;QAED,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,CACvB,IAAA,iBAAU,EAAC,CAAC,EAAqB,EAAE,EAAE;YACnC;;eAEG;YACH,MAAM,OAAO,GACX,UAAU,IAAI,CAAC,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;gBAC/C,CAAC,CAAC,cAAc;gBAChB,CAAC,CAAC,kBAAkB,CAAC;YAEzB,IAAI,CAAC,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"logging.interceptor.js","sourceRoot":"","sources":["../../src/logging/logging.interceptor.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rsdk/core",
|
|
3
|
-
"version": "6.0.0-next.
|
|
3
|
+
"version": "6.0.0-next.22",
|
|
4
4
|
"description": "Nestjs based microservice chassis",
|
|
5
5
|
"license": "Apache License 2.0",
|
|
6
6
|
"publishConfig": {
|
|
@@ -50,5 +50,5 @@
|
|
|
50
50
|
"optional": true
|
|
51
51
|
}
|
|
52
52
|
},
|
|
53
|
-
"gitHead": "
|
|
53
|
+
"gitHead": "26f12f1c32584ae1594cc00a2ea886f5bf8c3736"
|
|
54
54
|
}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import type { ExceptionSeverity } from '@rsdk/common';
|
|
2
|
+
|
|
1
3
|
export type ExceptionCode = string | number;
|
|
2
4
|
|
|
3
5
|
export interface ExceptionsProps<T = any> {
|
|
@@ -6,6 +8,11 @@ export interface ExceptionsProps<T = any> {
|
|
|
6
8
|
*/
|
|
7
9
|
code?: ExceptionCode | undefined;
|
|
8
10
|
|
|
11
|
+
/**
|
|
12
|
+
* Severity level of exception
|
|
13
|
+
*/
|
|
14
|
+
severity?: ExceptionSeverity | undefined;
|
|
15
|
+
|
|
9
16
|
/**
|
|
10
17
|
* Wrapped original error
|
|
11
18
|
*/
|
|
@@ -34,6 +41,11 @@ export abstract class PlatformException<T = any> extends Error {
|
|
|
34
41
|
*/
|
|
35
42
|
readonly code: ExceptionCode;
|
|
36
43
|
|
|
44
|
+
/**
|
|
45
|
+
* Exception severity
|
|
46
|
+
*/
|
|
47
|
+
readonly severity: ExceptionSeverity;
|
|
48
|
+
|
|
37
49
|
/**
|
|
38
50
|
* PlatformException has ability to wrap original errors. Such an option exists
|
|
39
51
|
* in many other languages and frameworks: .NET, Java, Go etc.
|
|
@@ -60,6 +72,7 @@ export abstract class PlatformException<T = any> extends Error {
|
|
|
60
72
|
super(message);
|
|
61
73
|
this.metatype = this.constructor.name;
|
|
62
74
|
this.code = code;
|
|
75
|
+
this.severity = props?.severity ?? 'error';
|
|
63
76
|
this.cause = props?.cause;
|
|
64
77
|
this.details = props?.details;
|
|
65
78
|
}
|
package/src/index.ts
CHANGED
|
@@ -37,7 +37,12 @@ export * from './exceptions';
|
|
|
37
37
|
|
|
38
38
|
export * from './exceptions.handling';
|
|
39
39
|
|
|
40
|
-
export {
|
|
40
|
+
export {
|
|
41
|
+
InjectLogger,
|
|
42
|
+
LogFormatter,
|
|
43
|
+
LogLevel,
|
|
44
|
+
EXCEPTION_SEVERITY_TO_LOG_LEVEL,
|
|
45
|
+
} from './logging';
|
|
41
46
|
|
|
42
47
|
export {
|
|
43
48
|
AnyMetric,
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { ExceptionSeverity } from '@rsdk/common';
|
|
2
|
+
import { LogLevel } from '@rsdk/logging';
|
|
3
|
+
|
|
4
|
+
export const EXCEPTION_SEVERITY_TO_LOG_LEVEL: Record<
|
|
5
|
+
ExceptionSeverity,
|
|
6
|
+
LogLevel
|
|
7
|
+
> = {
|
|
8
|
+
warn: LogLevel.warn,
|
|
9
|
+
error: LogLevel.error,
|
|
10
|
+
fatal: LogLevel.fatal,
|
|
11
|
+
};
|
package/src/logging/index.ts
CHANGED
|
@@ -14,6 +14,7 @@ import { ProtocolDetector } from '../transport/protocol.detector';
|
|
|
14
14
|
|
|
15
15
|
import { InjectLogger } from './decorators/inject-logger.decorator';
|
|
16
16
|
import { LOG_FORMATTERS } from './constants';
|
|
17
|
+
import { EXCEPTION_SEVERITY_TO_LOG_LEVEL } from './exception-severity-to-log-level';
|
|
17
18
|
import { DefaultLogFormatter, LogFormatter } from './formatters';
|
|
18
19
|
import { LoggingConfig } from './logging.config';
|
|
19
20
|
|
|
@@ -96,12 +97,16 @@ export class LoggingInterceptor implements NestInterceptor {
|
|
|
96
97
|
? requestDetails
|
|
97
98
|
: '[ALREADY LOGGED]';
|
|
98
99
|
|
|
99
|
-
this.logger.
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
100
|
+
this.logger.log(
|
|
101
|
+
EXCEPTION_SEVERITY_TO_LOG_LEVEL[ex.severity],
|
|
102
|
+
`Failed [${protocol.toUpperCase()}] ${path}`,
|
|
103
|
+
{
|
|
104
|
+
request,
|
|
105
|
+
cause: ex,
|
|
106
|
+
path,
|
|
107
|
+
zone,
|
|
108
|
+
},
|
|
109
|
+
);
|
|
105
110
|
|
|
106
111
|
return throwError(() => ex);
|
|
107
112
|
}),
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { ExecutionContext } from '@nestjs/common';
|
|
2
2
|
import type { ILogger } from '@rsdk/logging';
|
|
3
|
-
import { DEFAULT_LEVEL } from '@rsdk/logging';
|
|
3
|
+
import { DEFAULT_LEVEL, LogLevel } from '@rsdk/logging';
|
|
4
4
|
import { ApiZone } from '@rsdk/zones';
|
|
5
5
|
import { of, throwError } from 'rxjs';
|
|
6
6
|
|
|
@@ -113,10 +113,18 @@ describe('LoggingInterceptor', () => {
|
|
|
113
113
|
complete: () => {
|
|
114
114
|
/* eslint-disable prettier/prettier */
|
|
115
115
|
expect(mockLogger.debug).toHaveBeenCalledTimes(2);
|
|
116
|
-
expect(mockLogger.debug).toHaveBeenNthCalledWith(
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
116
|
+
expect(mockLogger.debug).toHaveBeenNthCalledWith(
|
|
117
|
+
1,
|
|
118
|
+
'>>> Received [TEST] /test/path',
|
|
119
|
+
expect.any(Object),
|
|
120
|
+
);
|
|
121
|
+
expect(mockLogger.debug).toHaveBeenNthCalledWith(
|
|
122
|
+
2,
|
|
123
|
+
'<<< Handled [TEST] /test/path',
|
|
124
|
+
expect.objectContaining({
|
|
125
|
+
executionTime: expect.any(Number),
|
|
126
|
+
}),
|
|
127
|
+
);
|
|
120
128
|
/* eslint-enable prettier/prettier */
|
|
121
129
|
|
|
122
130
|
done();
|
|
@@ -250,7 +258,8 @@ describe('LoggingInterceptor', () => {
|
|
|
250
258
|
.intercept(mockContext, { handle: () => throwError(() => error) })
|
|
251
259
|
.subscribe({
|
|
252
260
|
error: () => {
|
|
253
|
-
expect(mockLogger.
|
|
261
|
+
expect(mockLogger.log).toHaveBeenCalledWith(
|
|
262
|
+
LogLevel.error,
|
|
254
263
|
'Failed [TEST] /test/path',
|
|
255
264
|
expect.objectContaining({
|
|
256
265
|
request: {},
|
|
@@ -276,7 +285,8 @@ describe('LoggingInterceptor', () => {
|
|
|
276
285
|
.intercept(mockContext, { handle: () => throwError(() => error) })
|
|
277
286
|
.subscribe({
|
|
278
287
|
error: () => {
|
|
279
|
-
expect(mockLogger.
|
|
288
|
+
expect(mockLogger.log).toHaveBeenCalledWith(
|
|
289
|
+
LogLevel.error,
|
|
280
290
|
'Failed [TEST] /test/path',
|
|
281
291
|
expect.objectContaining({
|
|
282
292
|
request: '[ALREADY LOGGED]',
|