@vita-mojo/services-logger 1.0.18 → 1.0.19
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/package.json +1 -1
- package/src/index.d.ts +1 -0
- package/src/index.js +1 -0
- package/src/index.js.map +1 -1
- package/src/lib/constants/index.d.ts +1 -0
- package/src/lib/constants/index.js +5 -0
- package/src/lib/constants/index.js.map +1 -0
- package/src/lib/constants/log-events.d.ts +28 -0
- package/src/lib/constants/log-events.js +36 -0
- package/src/lib/constants/log-events.js.map +1 -0
- package/src/lib/nestjs/middlewares.js +9 -1
- package/src/lib/nestjs/middlewares.js.map +1 -1
package/package.json
CHANGED
package/src/index.d.ts
CHANGED
|
@@ -4,3 +4,4 @@ export { Log, Logger } from './lib/logger';
|
|
|
4
4
|
export { createProvider, createRequestLoggerMiddleware, createResponseLoggerMiddleware, loggerProvider, } from './lib/nestjs';
|
|
5
5
|
export { CloudWatch, Console, ConsoleAsJSON, Dynatrace, LambdaExtension, Logzio, Transport, } from './lib/transports';
|
|
6
6
|
export * from './lib/utils';
|
|
7
|
+
export * from './lib/constants';
|
package/src/index.js
CHANGED
|
@@ -22,4 +22,5 @@ Object.defineProperty(exports, "LambdaExtension", { enumerable: true, get: funct
|
|
|
22
22
|
Object.defineProperty(exports, "Logzio", { enumerable: true, get: function () { return transports_1.Logzio; } });
|
|
23
23
|
Object.defineProperty(exports, "Transport", { enumerable: true, get: function () { return transports_1.Transport; } });
|
|
24
24
|
tslib_1.__exportStar(require("./lib/utils"), exports);
|
|
25
|
+
tslib_1.__exportStar(require("./lib/constants"), exports);
|
|
25
26
|
//# sourceMappingURL=index.js.map
|
package/src/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../packages/services-logger/src/index.ts"],"names":[],"mappings":";;;;AAAA,mEAAgE;AAAvD,0HAAA,kBAAkB,OAAA;AAC3B,qDAAmD;AAA1C,6GAAA,YAAY,OAAA;AACrB,uCAA2C;AAA7B,gGAAA,MAAM,OAAA;AACpB,uCAKsB;AAJpB,wGAAA,cAAc,OAAA;AACd,uHAAA,6BAA6B,OAAA;AAC7B,wHAAA,8BAA8B,OAAA;AAC9B,wGAAA,cAAc,OAAA;AAEhB,+CAQ0B;AAPxB,wGAAA,UAAU,OAAA;AACV,qGAAA,OAAO,OAAA;AACP,2GAAA,aAAa,OAAA;AACb,uGAAA,SAAS,OAAA;AACT,6GAAA,eAAe,OAAA;AACf,oGAAA,MAAM,OAAA;AACN,uGAAA,SAAS,OAAA;AAEX,sDAA4B"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../packages/services-logger/src/index.ts"],"names":[],"mappings":";;;;AAAA,mEAAgE;AAAvD,0HAAA,kBAAkB,OAAA;AAC3B,qDAAmD;AAA1C,6GAAA,YAAY,OAAA;AACrB,uCAA2C;AAA7B,gGAAA,MAAM,OAAA;AACpB,uCAKsB;AAJpB,wGAAA,cAAc,OAAA;AACd,uHAAA,6BAA6B,OAAA;AAC7B,wHAAA,8BAA8B,OAAA;AAC9B,wGAAA,cAAc,OAAA;AAEhB,+CAQ0B;AAPxB,wGAAA,UAAU,OAAA;AACV,qGAAA,OAAO,OAAA;AACP,2GAAA,aAAa,OAAA;AACb,uGAAA,SAAS,OAAA;AACT,6GAAA,eAAe,OAAA;AACf,oGAAA,MAAM,OAAA;AACN,uGAAA,SAAS,OAAA;AAEX,sDAA4B;AAC5B,0DAAgC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './log-events';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/services-logger/src/lib/constants/index.ts"],"names":[],"mappings":";;;AAAA,uDAA6B"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
export declare const LogEvents: {
|
|
2
|
+
readonly HTTP_REQUEST_RECEIVED: "http.request.received";
|
|
3
|
+
readonly HTTP_REQUEST_COMPLETED: "http.request.completed";
|
|
4
|
+
readonly HTTP_REQUEST_SLOW: "http.request.slow";
|
|
5
|
+
readonly EXTERNAL_CALL_COMPLETED: "external.call.completed";
|
|
6
|
+
readonly EXTERNAL_CALL_FAILED: "external.call.failed";
|
|
7
|
+
readonly EXTERNAL_CALL_SLOW: "external.call.slow";
|
|
8
|
+
readonly AWS_SNS_PUBLISHED: "aws.sns.published";
|
|
9
|
+
readonly AWS_SNS_FAILED: "aws.sns.failed";
|
|
10
|
+
readonly AWS_SQS_SENT: "aws.sqs.sent";
|
|
11
|
+
readonly AWS_SQS_RECEIVED: "aws.sqs.received";
|
|
12
|
+
readonly AWS_SQS_PROCESSED: "aws.sqs.processed";
|
|
13
|
+
readonly AWS_SQS_FAILED: "aws.sqs.failed";
|
|
14
|
+
readonly AWS_S3_LOADED: "aws.s3.loaded";
|
|
15
|
+
readonly AWS_S3_FAILED: "aws.s3.failed";
|
|
16
|
+
readonly AWS_DYNAMODB_FAILED: "aws.dynamodb.failed";
|
|
17
|
+
readonly AUTH_LOGIN_SUCCESS: "auth.login.success";
|
|
18
|
+
readonly AUTH_LOGIN_FAILED: "auth.login.failed";
|
|
19
|
+
readonly AUTH_TOKEN_REFRESHED: "auth.token.refreshed";
|
|
20
|
+
readonly AUTH_TOKEN_REFRESH_FAILED: "auth.token.refresh_failed";
|
|
21
|
+
readonly AUTH_PERMISSION_DENIED: "auth.permission.denied";
|
|
22
|
+
readonly SYSTEM_STARTED: "system.started";
|
|
23
|
+
readonly SYSTEM_SHUTDOWN: "system.shutdown";
|
|
24
|
+
readonly SYSTEM_HEALTH_FAILED: "system.health.failed";
|
|
25
|
+
readonly SYSTEM_WORKER_FAILED: "system.worker.failed";
|
|
26
|
+
readonly SYSTEM_DB_READONLY: "system.db.readonly";
|
|
27
|
+
};
|
|
28
|
+
export type LogEvents = typeof LogEvents[keyof typeof LogEvents];
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.LogEvents = void 0;
|
|
4
|
+
exports.LogEvents = {
|
|
5
|
+
// Inbound HTTP request lifecycle events
|
|
6
|
+
HTTP_REQUEST_RECEIVED: 'http.request.received', // Request enters the service
|
|
7
|
+
HTTP_REQUEST_COMPLETED: 'http.request.completed', // Response sent (2xx/3xx/4xx/5xx)
|
|
8
|
+
HTTP_REQUEST_SLOW: 'http.request.slow', // Response time exceeds threshold (service-defined)
|
|
9
|
+
// External Service Calls
|
|
10
|
+
EXTERNAL_CALL_COMPLETED: 'external.call.completed', // Outbound HTTP call succeeded
|
|
11
|
+
EXTERNAL_CALL_FAILED: 'external.call.failed', // Outbound HTTP call failed after all retries
|
|
12
|
+
EXTERNAL_CALL_SLOW: 'external.call.slow', // Outbound HTTP call exceeds response latency threshold
|
|
13
|
+
// AWS Infrastructure
|
|
14
|
+
AWS_SNS_PUBLISHED: 'aws.sns.published', // SNS message published
|
|
15
|
+
AWS_SNS_FAILED: 'aws.sns.failed', // SNS publish failed
|
|
16
|
+
AWS_SQS_SENT: 'aws.sqs.sent', // SQS message sent
|
|
17
|
+
AWS_SQS_RECEIVED: 'aws.sqs.received', // SQS message received
|
|
18
|
+
AWS_SQS_PROCESSED: 'aws.sqs.processed', // SQS message processed successfully
|
|
19
|
+
AWS_SQS_FAILED: 'aws.sqs.failed', // SQS message processing failed
|
|
20
|
+
AWS_S3_LOADED: 'aws.s3.loaded', // S3 object loaded
|
|
21
|
+
AWS_S3_FAILED: 'aws.s3.failed', // S3 operation failed
|
|
22
|
+
AWS_DYNAMODB_FAILED: 'aws.dynamodb.failed', // DynamoDB operation failed
|
|
23
|
+
// Auth
|
|
24
|
+
AUTH_LOGIN_SUCCESS: 'auth.login.success', // User authenticated
|
|
25
|
+
AUTH_LOGIN_FAILED: 'auth.login.failed', // Authentication attempt failed
|
|
26
|
+
AUTH_TOKEN_REFRESHED: 'auth.token.refreshed', // Auth token refreshed
|
|
27
|
+
AUTH_TOKEN_REFRESH_FAILED: 'auth.token.refresh_failed', // Auth token refresh failed
|
|
28
|
+
AUTH_PERMISSION_DENIED: 'auth.permission.denied', // Permission check failed
|
|
29
|
+
// System Lifecycle
|
|
30
|
+
SYSTEM_STARTED: 'system.started', // Service booted
|
|
31
|
+
SYSTEM_SHUTDOWN: 'system.shutdown', // Graceful shutdown initiated
|
|
32
|
+
SYSTEM_HEALTH_FAILED: 'system.health.failed', // Health check failed
|
|
33
|
+
SYSTEM_WORKER_FAILED: 'system.worker.failed', // Cluster worker died
|
|
34
|
+
SYSTEM_DB_READONLY: 'system.db.readonly', // Database is in read-only mode
|
|
35
|
+
};
|
|
36
|
+
//# sourceMappingURL=log-events.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"log-events.js","sourceRoot":"","sources":["../../../../../../packages/services-logger/src/lib/constants/log-events.ts"],"names":[],"mappings":";;;AAAa,QAAA,SAAS,GAAG;IACvB,wCAAwC;IACxC,qBAAqB,EAAE,uBAAuB,EAAE,6BAA6B;IAC7E,sBAAsB,EAAE,wBAAwB,EAAE,kCAAkC;IACpF,iBAAiB,EAAE,mBAAmB,EAAE,oDAAoD;IAE5F,yBAAyB;IACzB,uBAAuB,EAAE,yBAAyB,EAAE,+BAA+B;IACnF,oBAAoB,EAAE,sBAAsB,EAAE,8CAA8C;IAC5F,kBAAkB,EAAE,oBAAoB,EAAE,wDAAwD;IAElG,qBAAqB;IACrB,iBAAiB,EAAE,mBAAmB,EAAE,wBAAwB;IAChE,cAAc,EAAE,gBAAgB,EAAE,qBAAqB;IACvD,YAAY,EAAE,cAAc,EAAE,mBAAmB;IACjD,gBAAgB,EAAE,kBAAkB,EAAE,uBAAuB;IAC7D,iBAAiB,EAAE,mBAAmB,EAAE,qCAAqC;IAC7E,cAAc,EAAE,gBAAgB,EAAE,gCAAgC;IAClE,aAAa,EAAE,eAAe,EAAE,mBAAmB;IACnD,aAAa,EAAE,eAAe,EAAE,sBAAsB;IACtD,mBAAmB,EAAE,qBAAqB,EAAE,4BAA4B;IAExE,OAAO;IACP,kBAAkB,EAAE,oBAAoB,EAAE,qBAAqB;IAC/D,iBAAiB,EAAE,mBAAmB,EAAE,gCAAgC;IACxE,oBAAoB,EAAE,sBAAsB,EAAE,uBAAuB;IACrE,yBAAyB,EAAE,2BAA2B,EAAE,4BAA4B;IACpF,sBAAsB,EAAE,wBAAwB,EAAE,0BAA0B;IAE5E,mBAAmB;IACnB,cAAc,EAAE,gBAAgB,EAAE,iBAAiB;IACnD,eAAe,EAAE,iBAAiB,EAAE,8BAA8B;IAClE,oBAAoB,EAAE,sBAAsB,EAAE,sBAAsB;IACpE,oBAAoB,EAAE,sBAAsB,EAAE,sBAAsB;IACpE,kBAAkB,EAAE,oBAAoB,EAAE,gCAAgC;CAClE,CAAC"}
|
|
@@ -5,6 +5,7 @@ const tslib_1 = require("tslib");
|
|
|
5
5
|
const node_crypto_1 = require("node:crypto");
|
|
6
6
|
const mung = tslib_1.__importStar(require("express-mung"));
|
|
7
7
|
const logger_1 = require("../logger");
|
|
8
|
+
const constants_1 = require("../constants");
|
|
8
9
|
const shouldLog = (level, url) => {
|
|
9
10
|
if (level === 'debug') {
|
|
10
11
|
if (process.env['VMOS_LOGGER_PATHS'] && url) {
|
|
@@ -17,6 +18,7 @@ const shouldLog = (level, url) => {
|
|
|
17
18
|
function createRequestLoggerMiddleware(logger, level = 'info', logDepth) {
|
|
18
19
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
19
20
|
return (req, res, next) => {
|
|
21
|
+
var _a, _b;
|
|
20
22
|
res.locals[logger_1.Logger.requestIdKey] =
|
|
21
23
|
req.headers[logger_1.Logger.requestIdKey] || (0, node_crypto_1.randomUUID)();
|
|
22
24
|
if (shouldLog(level, req.originalUrl)) {
|
|
@@ -31,6 +33,9 @@ function createRequestLoggerMiddleware(logger, level = 'info', logDepth) {
|
|
|
31
33
|
[logger_1.Logger.metaKey]: {
|
|
32
34
|
type: 'request',
|
|
33
35
|
url: req.originalUrl,
|
|
36
|
+
event: constants_1.LogEvents.HTTP_REQUEST_RECEIVED,
|
|
37
|
+
tenantId: (_a = req.headers) === null || _a === void 0 ? void 0 : _a['tenant'],
|
|
38
|
+
storeId: (_b = req.headers) === null || _b === void 0 ? void 0 : _b['store'],
|
|
34
39
|
[logger_1.Logger.requestIdKey]: res.locals[logger_1.Logger.requestIdKey],
|
|
35
40
|
},
|
|
36
41
|
});
|
|
@@ -44,7 +49,7 @@ function createResponseLoggerMiddleware(logger, level = 'info', logDepth) {
|
|
|
44
49
|
return mung.json(
|
|
45
50
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
46
51
|
(body, req, res) => {
|
|
47
|
-
var _a, _b;
|
|
52
|
+
var _a, _b, _c, _d;
|
|
48
53
|
if (shouldLog(level, req.url)) {
|
|
49
54
|
logger[level]({
|
|
50
55
|
logDepth,
|
|
@@ -61,6 +66,9 @@ function createResponseLoggerMiddleware(logger, level = 'info', logDepth) {
|
|
|
61
66
|
statusCode: res.statusCode,
|
|
62
67
|
type: 'response',
|
|
63
68
|
url: req.url,
|
|
69
|
+
event: constants_1.LogEvents.HTTP_REQUEST_COMPLETED,
|
|
70
|
+
tenantId: (_c = req.headers) === null || _c === void 0 ? void 0 : _c['tenant'],
|
|
71
|
+
storeId: (_d = req.headers) === null || _d === void 0 ? void 0 : _d['store'],
|
|
64
72
|
[logger_1.Logger.requestIdKey]: res.locals[logger_1.Logger.requestIdKey],
|
|
65
73
|
},
|
|
66
74
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"middlewares.js","sourceRoot":"","sources":["../../../../../../packages/services-logger/src/lib/nestjs/middlewares.ts"],"names":[],"mappings":";;;;AAAA,6CAAyC;AAEzC,2DAAqC;AAErC,sCAAmC;
|
|
1
|
+
{"version":3,"file":"middlewares.js","sourceRoot":"","sources":["../../../../../../packages/services-logger/src/lib/nestjs/middlewares.ts"],"names":[],"mappings":"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"}
|