@yolo-croket-dev/core 1.8.6 → 1.8.7-beta.1
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/functions/index.d.ts +2 -0
- package/functions/index.js +2 -0
- package/functions/uncaught-exception-handler.d.ts +13 -0
- package/functions/uncaught-exception-handler.js +62 -0
- package/functions/unhandled-rejection-handler.d.ts +13 -0
- package/functions/unhandled-rejection-handler.js +62 -0
- package/index.d.ts +1 -0
- package/index.js +1 -0
- package/interceptors/logging-service.interceptor.js +1 -3
- package/package.json +2 -2
- package/.claude/settings.local.json +0 -9
package/functions/index.d.ts
CHANGED
package/functions/index.js
CHANGED
|
@@ -21,3 +21,5 @@ __exportStar(require("./rewrite-file-value.function"), exports);
|
|
|
21
21
|
__exportStar(require("./amqp-call-manager.function"), exports);
|
|
22
22
|
__exportStar(require("./extract-redis-url.function"), exports);
|
|
23
23
|
__exportStar(require("./abort"), exports);
|
|
24
|
+
__exportStar(require("./uncaught-exception-handler"), exports);
|
|
25
|
+
__exportStar(require("./unhandled-rejection-handler"), exports);
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @author jun
|
|
3
|
+
* @description uncaughtException 핸들러 - 에러 로깅 및 모니터링
|
|
4
|
+
* @process
|
|
5
|
+
* 1. 에러 로그 기록 (MsaLogger, Datadog)
|
|
6
|
+
* 2. 개발팀에서 로그 확인 후 즉시 대응
|
|
7
|
+
*
|
|
8
|
+
* @note
|
|
9
|
+
* - uncaughtException 발생 시 즉시 로그를 기록하여 모니터링
|
|
10
|
+
* - 개발팀에서 알림을 받고 바로 대응 예정
|
|
11
|
+
* - MsaLogger 실패 시에도 console.error로 fallback 처리
|
|
12
|
+
*/
|
|
13
|
+
export declare function uncaughtExceptionHandler(err: any): void;
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
+
exports.uncaughtExceptionHandler = void 0;
|
|
27
|
+
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
28
|
+
const msa_logger_1 = __importStar(require("@yolo-croket-dev/msa-logger"));
|
|
29
|
+
const msaLogger = new msa_logger_1.default(msa_logger_1.ServerTypeEnum.GATEWAY);
|
|
30
|
+
/**
|
|
31
|
+
* @author jun
|
|
32
|
+
* @description uncaughtException 핸들러 - 에러 로깅 및 모니터링
|
|
33
|
+
* @process
|
|
34
|
+
* 1. 에러 로그 기록 (MsaLogger, Datadog)
|
|
35
|
+
* 2. 개발팀에서 로그 확인 후 즉시 대응
|
|
36
|
+
*
|
|
37
|
+
* @note
|
|
38
|
+
* - uncaughtException 발생 시 즉시 로그를 기록하여 모니터링
|
|
39
|
+
* - 개발팀에서 알림을 받고 바로 대응 예정
|
|
40
|
+
* - MsaLogger 실패 시에도 console.error로 fallback 처리
|
|
41
|
+
*/
|
|
42
|
+
function uncaughtExceptionHandler(err) {
|
|
43
|
+
try {
|
|
44
|
+
msaLogger.error('uncaughtException', {
|
|
45
|
+
traceId: 'uncaughtException',
|
|
46
|
+
errInfo: {
|
|
47
|
+
errType: err.name || 'Error',
|
|
48
|
+
status: err.status || 500,
|
|
49
|
+
message: err.message,
|
|
50
|
+
stack: err.stack,
|
|
51
|
+
},
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
catch (logError) {
|
|
55
|
+
// MsaLogger 실패 시 최후의 수단
|
|
56
|
+
// eslint-disable-next-line no-console
|
|
57
|
+
console.error('Failed to log uncaughtException:', logError);
|
|
58
|
+
// eslint-disable-next-line no-console
|
|
59
|
+
console.error('Original error:', err);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
exports.uncaughtExceptionHandler = uncaughtExceptionHandler;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @author jun
|
|
3
|
+
* @description unhandledRejection 핸들러 - 에러 로깅 및 모니터링
|
|
4
|
+
* @process
|
|
5
|
+
* 1. Promise rejection 에러 로그 기록
|
|
6
|
+
* 2. 개발팀에서 로그 확인 후 즉시 대응
|
|
7
|
+
*
|
|
8
|
+
* @note
|
|
9
|
+
* - unhandledRejection 발생 시 즉시 로그를 기록하여 모니터링
|
|
10
|
+
* - 개발팀에서 알림을 받고 바로 대응 예정
|
|
11
|
+
* - MsaLogger 실패 시에도 console.error로 fallback 처리
|
|
12
|
+
*/
|
|
13
|
+
export declare function unhandledRejectionHandler(err: any): void;
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
+
exports.unhandledRejectionHandler = void 0;
|
|
27
|
+
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
28
|
+
const msa_logger_1 = __importStar(require("@yolo-croket-dev/msa-logger"));
|
|
29
|
+
const msaLogger = new msa_logger_1.default(msa_logger_1.ServerTypeEnum.SERVICE);
|
|
30
|
+
/**
|
|
31
|
+
* @author jun
|
|
32
|
+
* @description unhandledRejection 핸들러 - 에러 로깅 및 모니터링
|
|
33
|
+
* @process
|
|
34
|
+
* 1. Promise rejection 에러 로그 기록
|
|
35
|
+
* 2. 개발팀에서 로그 확인 후 즉시 대응
|
|
36
|
+
*
|
|
37
|
+
* @note
|
|
38
|
+
* - unhandledRejection 발생 시 즉시 로그를 기록하여 모니터링
|
|
39
|
+
* - 개발팀에서 알림을 받고 바로 대응 예정
|
|
40
|
+
* - MsaLogger 실패 시에도 console.error로 fallback 처리
|
|
41
|
+
*/
|
|
42
|
+
function unhandledRejectionHandler(err) {
|
|
43
|
+
try {
|
|
44
|
+
msaLogger.error('unhandledRejection', {
|
|
45
|
+
traceId: 'unhandledRejection',
|
|
46
|
+
errInfo: {
|
|
47
|
+
errType: (err === null || err === void 0 ? void 0 : err.name) || 'UnhandledRejection',
|
|
48
|
+
status: (err === null || err === void 0 ? void 0 : err.status) || 500,
|
|
49
|
+
message: (err === null || err === void 0 ? void 0 : err.message) || String(err),
|
|
50
|
+
stack: err === null || err === void 0 ? void 0 : err.stack,
|
|
51
|
+
},
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
catch (logError) {
|
|
55
|
+
// MsaLogger 실패 시 최후의 수단
|
|
56
|
+
// eslint-disable-next-line no-console
|
|
57
|
+
console.error('Failed to log unhandledRejection:', logError);
|
|
58
|
+
// eslint-disable-next-line no-console
|
|
59
|
+
console.error('Original error:', err);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
exports.unhandledRejectionHandler = unhandledRejectionHandler;
|
package/index.d.ts
CHANGED
package/index.js
CHANGED
|
@@ -110,9 +110,7 @@ let LoggingServiceInterceptor = class LoggingServiceInterceptor {
|
|
|
110
110
|
const currentSpan = dd_trace_1.default.scope().active();
|
|
111
111
|
let loggingSpan = null;
|
|
112
112
|
if (currentSpan) {
|
|
113
|
-
loggingSpan = dd_trace_1.default.startSpan(`logging-service-interceptor-${content.pattern}`, {
|
|
114
|
-
childOf: currentSpan.context(),
|
|
115
|
-
});
|
|
113
|
+
loggingSpan = dd_trace_1.default.startSpan(`logging-service-interceptor-${content.pattern}`, { childOf: currentSpan.context() });
|
|
116
114
|
}
|
|
117
115
|
if (loggingSpan) {
|
|
118
116
|
loggingSpan.setTag('traceId', traceId);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@yolo-croket-dev/core",
|
|
3
|
-
"version": "1.8.
|
|
3
|
+
"version": "1.8.7-beta.1",
|
|
4
4
|
"author": "Yolo Co., Ltd.",
|
|
5
5
|
"description": "Yolo commonization module",
|
|
6
6
|
"main": "index.js",
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
},
|
|
22
22
|
"dependencies": {
|
|
23
23
|
"@yolo-croket-dev/logger": "^1.0.15",
|
|
24
|
-
"@yolo-croket-dev/msa-logger": "^3.3.0",
|
|
24
|
+
"@yolo-croket-dev/msa-logger": "^3.3.1-beta.0",
|
|
25
25
|
"@yolo-croket-dev/redis": "^1.0.25",
|
|
26
26
|
"axios": "^1.1.3",
|
|
27
27
|
"dd-trace": "^5.46.0",
|