@nexe/logger 0.1.0

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.
Files changed (43) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +305 -0
  3. package/dist/config.d.ts +30 -0
  4. package/dist/config.d.ts.map +1 -0
  5. package/dist/config.js +82 -0
  6. package/dist/config.js.map +1 -0
  7. package/dist/factory.d.ts +14 -0
  8. package/dist/factory.d.ts.map +1 -0
  9. package/dist/factory.js +99 -0
  10. package/dist/factory.js.map +1 -0
  11. package/dist/formatters.d.ts +43 -0
  12. package/dist/formatters.d.ts.map +1 -0
  13. package/dist/formatters.js +110 -0
  14. package/dist/formatters.js.map +1 -0
  15. package/dist/global.d.ts +33 -0
  16. package/dist/global.d.ts.map +1 -0
  17. package/dist/global.js +130 -0
  18. package/dist/global.js.map +1 -0
  19. package/dist/index.d.ts +9 -0
  20. package/dist/index.d.ts.map +1 -0
  21. package/dist/index.js +33 -0
  22. package/dist/index.js.map +1 -0
  23. package/dist/logger.d.ts +77 -0
  24. package/dist/logger.d.ts.map +1 -0
  25. package/dist/logger.js +131 -0
  26. package/dist/logger.js.map +1 -0
  27. package/dist/serializers.d.ts +35 -0
  28. package/dist/serializers.d.ts.map +1 -0
  29. package/dist/serializers.js +151 -0
  30. package/dist/serializers.js.map +1 -0
  31. package/dist/test-error-logging.d.ts +3 -0
  32. package/dist/test-error-logging.d.ts.map +1 -0
  33. package/dist/test-error-logging.js +44 -0
  34. package/dist/test-error-logging.js.map +1 -0
  35. package/dist/transports.d.ts +56 -0
  36. package/dist/transports.d.ts.map +1 -0
  37. package/dist/transports.js +130 -0
  38. package/dist/transports.js.map +1 -0
  39. package/dist/types.d.ts +135 -0
  40. package/dist/types.d.ts.map +1 -0
  41. package/dist/types.js +16 -0
  42. package/dist/types.js.map +1 -0
  43. package/package.json +56 -0
@@ -0,0 +1,110 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.errorFormatter = exports.logFormatter = exports.bindingsFormatter = exports.timestampFormatter = exports.levelFormatter = void 0;
4
+ exports.getDefaultFormatters = getDefaultFormatters;
5
+ exports.createFormatter = createFormatter;
6
+ /**
7
+ * 日志级别格式化器 - 简洁版本,只保留数字级别
8
+ */
9
+ const levelFormatter = (_label, number) => {
10
+ return {
11
+ level: number,
12
+ };
13
+ // return {
14
+ // level: number,
15
+ // levelLabel: label.toUpperCase(),
16
+ // };
17
+ };
18
+ exports.levelFormatter = levelFormatter;
19
+ /**
20
+ * 时间戳格式化器
21
+ */
22
+ const timestampFormatter = () => {
23
+ return {
24
+ timestamp: new Date().toISOString(),
25
+ };
26
+ };
27
+ exports.timestampFormatter = timestampFormatter;
28
+ /**
29
+ * 绑定数据格式化器 - 默认返回空对象,保持简洁
30
+ */
31
+ const bindingsFormatter = (_bindings) => {
32
+ // 默认不添加任何额外信息,保持日志简洁
33
+ return {};
34
+ // const { pid, hostname, ...rest } = bindings;
35
+ // return {
36
+ // service: 'HestJS',
37
+ // version: process.env.npm_package_version || '0.1.0',
38
+ // environment: process.env.NODE_ENV || 'development',
39
+ // pid,
40
+ // hostname,
41
+ // ...rest,
42
+ // };
43
+ };
44
+ exports.bindingsFormatter = bindingsFormatter;
45
+ /**
46
+ * 日志对象格式化器 - 标准化日志结构
47
+ */
48
+ const logFormatter = (object) => {
49
+ const { level, time, msg, ...rest } = object;
50
+ // 重组日志结构,确保关键字段在前
51
+ return {
52
+ "@timestamp": time,
53
+ level,
54
+ message: msg,
55
+ ...rest,
56
+ };
57
+ };
58
+ exports.logFormatter = logFormatter;
59
+ /**
60
+ * 错误格式化器 - 专门处理错误对象
61
+ */
62
+ const errorFormatter = (object) => {
63
+ if (object.err || object.error) {
64
+ const error = object.err || object.error;
65
+ return {
66
+ ...object,
67
+ error: {
68
+ name: error.name,
69
+ message: error.message,
70
+ stack: error.stack,
71
+ ...(error.status && { status: error.status }),
72
+ ...(error.statusCode && { statusCode: error.statusCode }),
73
+ },
74
+ };
75
+ }
76
+ return object;
77
+ };
78
+ exports.errorFormatter = errorFormatter;
79
+ /**
80
+ * 获取默认格式化器
81
+ */
82
+ function getDefaultFormatters() {
83
+ return {
84
+ level: exports.levelFormatter,
85
+ bindings: exports.bindingsFormatter,
86
+ log: (object) => {
87
+ // 组合多个格式化器
88
+ const formatted = (0, exports.logFormatter)(object);
89
+ return (0, exports.errorFormatter)(formatted);
90
+ },
91
+ };
92
+ }
93
+ /**
94
+ * 创建自定义格式化器
95
+ */
96
+ function createFormatter(fn) {
97
+ return (object) => {
98
+ try {
99
+ return fn(object);
100
+ }
101
+ catch (error) {
102
+ // 如果格式化失败,返回原始对象并添加错误信息
103
+ return {
104
+ ...object,
105
+ formatError: error instanceof Error ? error.message : "Unknown formatting error",
106
+ };
107
+ }
108
+ };
109
+ }
110
+ //# sourceMappingURL=formatters.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"formatters.js","sourceRoot":"","sources":["../src/formatters.ts"],"names":[],"mappings":";;;AA+EA,oDAUC;AAKD,0CAeC;AA7GD;;GAEG;AACI,MAAM,cAAc,GAAG,CAAC,MAAc,EAAE,MAAc,EAAE,EAAE;IAC/D,OAAO;QACL,KAAK,EAAE,MAAM;KACd,CAAC;IAEF,aAAa;IACb,mBAAmB;IACnB,qCAAqC;IACrC,KAAK;AACP,CAAC,CAAC;AATW,QAAA,cAAc,kBASzB;AAEF;;GAEG;AACI,MAAM,kBAAkB,GAAG,GAAG,EAAE;IACrC,OAAO;QACL,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;KACpC,CAAC;AACJ,CAAC,CAAC;AAJW,QAAA,kBAAkB,sBAI7B;AAEF;;GAEG;AACI,MAAM,iBAAiB,GAAG,CAAC,SAA8B,EAAE,EAAE;IAClE,qBAAqB;IACrB,OAAO,EAAE,CAAC;IAEV,+CAA+C;IAC/C,WAAW;IACX,uBAAuB;IACvB,yDAAyD;IACzD,wDAAwD;IACxD,SAAS;IACT,cAAc;IACd,aAAa;IACb,KAAK;AACP,CAAC,CAAC;AAbW,QAAA,iBAAiB,qBAa5B;AAEF;;GAEG;AACI,MAAM,YAAY,GAAG,CAAC,MAA2B,EAAE,EAAE;IAC1D,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,MAAM,CAAC;IAE7C,kBAAkB;IAClB,OAAO;QACL,YAAY,EAAE,IAAI;QAClB,KAAK;QACL,OAAO,EAAE,GAAG;QACZ,GAAG,IAAI;KACR,CAAC;AACJ,CAAC,CAAC;AAVW,QAAA,YAAY,gBAUvB;AAEF;;GAEG;AACI,MAAM,cAAc,GAAG,CAAC,MAA2B,EAAE,EAAE;IAC5D,IAAI,MAAM,CAAC,GAAG,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QAC/B,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,IAAI,MAAM,CAAC,KAAK,CAAC;QACzC,OAAO;YACL,GAAG,MAAM;YACT,KAAK,EAAE;gBACL,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,KAAK,EAAE,KAAK,CAAC,KAAK;gBAClB,GAAG,CAAC,KAAK,CAAC,MAAM,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC;gBAC7C,GAAG,CAAC,KAAK,CAAC,UAAU,IAAI,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,CAAC;aAC1D;SACF,CAAC;IACJ,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAfW,QAAA,cAAc,kBAezB;AAEF;;GAEG;AACH,SAAgB,oBAAoB;IAClC,OAAO;QACL,KAAK,EAAE,sBAAc;QACrB,QAAQ,EAAE,yBAAiB;QAC3B,GAAG,EAAE,CAAC,MAA2B,EAAE,EAAE;YACnC,WAAW;YACX,MAAM,SAAS,GAAG,IAAA,oBAAY,EAAC,MAAM,CAAC,CAAC;YACvC,OAAO,IAAA,sBAAc,EAAC,SAAS,CAAC,CAAC;QACnC,CAAC;KACF,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAgB,eAAe,CAC7B,EAAoB;IAEpB,OAAO,CAAC,MAAS,EAAE,EAAE;QACnB,IAAI,CAAC;YACH,OAAO,EAAE,CAAC,MAAM,CAAC,CAAC;QACpB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,wBAAwB;YACxB,OAAO;gBACL,GAAG,MAAM;gBACT,WAAW,EACT,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,0BAA0B;aACjE,CAAC;QACT,CAAC;IACH,CAAC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,33 @@
1
+ import type { Logger, LoggerConfig } from './types';
2
+ /**
3
+ * 获取全局 Logger 实例
4
+ */
5
+ export declare function getGlobalLogger(): Logger;
6
+ /**
7
+ * 设置全局 Logger 实例
8
+ */
9
+ export declare function setGlobalLogger(logger: Logger): void;
10
+ /**
11
+ * 重置全局 Logger
12
+ */
13
+ export declare function resetGlobalLogger(): void;
14
+ /**
15
+ * 配置全局 Logger
16
+ */
17
+ export declare function configureGlobalLogger(name?: string, config?: Partial<LoggerConfig>): Logger;
18
+ /**
19
+ * 便利方法 - 直接从全局 Logger 记录日志
20
+ */
21
+ export declare const logger: {
22
+ fatal: Logger["fatal"];
23
+ error: Logger["error"];
24
+ warn: Logger["warn"];
25
+ info: Logger["info"];
26
+ debug: Logger["debug"];
27
+ trace: Logger["trace"];
28
+ child: (bindings: Record<string, any>) => Logger;
29
+ setContext: (context: Record<string, any>) => Logger;
30
+ flush: () => void;
31
+ isLevelEnabled: (level: string) => boolean;
32
+ };
33
+ //# sourceMappingURL=global.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"global.d.ts","sourceRoot":"","sources":["../src/global.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAOpD;;GAEG;AACH,wBAAgB,eAAe,IAAI,MAAM,CAKxC;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAEpD;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,IAAI,CAExC;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,IAAI,CAAC,EAAE,MAAM,EACb,MAAM,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,GAC7B,MAAM,CAGR;AAED;;GAEG;AACH,eAAO,MAAM,MAAM;WAUX,MAAM,CAAC,OAAO,CAAC;WAWf,MAAM,CAAC,OAAO,CAAC;UAWf,MAAM,CAAC,MAAM,CAAC;UAWd,MAAM,CAAC,MAAM,CAAC;WAWd,MAAM,CAAC,OAAO,CAAC;WAWf,MAAM,CAAC,OAAO,CAAC;sBAEH,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;0BAGf,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;;4BAMjB,MAAM;CAG/B,CAAC"}
package/dist/global.js ADDED
@@ -0,0 +1,130 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.logger = void 0;
4
+ exports.getGlobalLogger = getGlobalLogger;
5
+ exports.setGlobalLogger = setGlobalLogger;
6
+ exports.resetGlobalLogger = resetGlobalLogger;
7
+ exports.configureGlobalLogger = configureGlobalLogger;
8
+ const factory_1 = require("./factory");
9
+ /**
10
+ * 全局 Logger 实例
11
+ */
12
+ let globalLogger = null;
13
+ /**
14
+ * 获取全局 Logger 实例
15
+ */
16
+ function getGlobalLogger() {
17
+ if (!globalLogger) {
18
+ globalLogger = (0, factory_1.createLogger)('Global');
19
+ }
20
+ return globalLogger;
21
+ }
22
+ /**
23
+ * 设置全局 Logger 实例
24
+ */
25
+ function setGlobalLogger(logger) {
26
+ globalLogger = logger;
27
+ }
28
+ /**
29
+ * 重置全局 Logger
30
+ */
31
+ function resetGlobalLogger() {
32
+ globalLogger = null;
33
+ }
34
+ /**
35
+ * 配置全局 Logger
36
+ */
37
+ function configureGlobalLogger(name, config) {
38
+ globalLogger = (0, factory_1.createLogger)(name || 'Global', config);
39
+ return globalLogger;
40
+ }
41
+ /**
42
+ * 便利方法 - 直接从全局 Logger 记录日志
43
+ */
44
+ exports.logger = {
45
+ fatal: ((obj, message, ...args) => {
46
+ const globalLogger = getGlobalLogger();
47
+ if (obj instanceof Error) {
48
+ globalLogger.fatal(obj, message, ...args);
49
+ }
50
+ else if (typeof obj === 'string') {
51
+ globalLogger.fatal(obj, message, ...args);
52
+ }
53
+ else {
54
+ globalLogger.fatal(obj, message, ...args);
55
+ }
56
+ }),
57
+ error: ((obj, message, ...args) => {
58
+ const globalLogger = getGlobalLogger();
59
+ if (obj instanceof Error) {
60
+ globalLogger.error(obj, message, ...args);
61
+ }
62
+ else if (typeof obj === 'string') {
63
+ globalLogger.error(obj, message, ...args);
64
+ }
65
+ else {
66
+ globalLogger.error(obj, message, ...args);
67
+ }
68
+ }),
69
+ warn: ((obj, message, ...args) => {
70
+ const globalLogger = getGlobalLogger();
71
+ if (obj instanceof Error) {
72
+ globalLogger.warn(obj, message, ...args);
73
+ }
74
+ else if (typeof obj === 'string') {
75
+ globalLogger.warn(obj, message, ...args);
76
+ }
77
+ else {
78
+ globalLogger.warn(obj, message, ...args);
79
+ }
80
+ }),
81
+ info: ((obj, message, ...args) => {
82
+ const globalLogger = getGlobalLogger();
83
+ if (obj instanceof Error) {
84
+ globalLogger.info(obj, message, ...args);
85
+ }
86
+ else if (typeof obj === 'string') {
87
+ globalLogger.info(obj, message, ...args);
88
+ }
89
+ else {
90
+ globalLogger.info(obj, message, ...args);
91
+ }
92
+ }),
93
+ debug: ((obj, message, ...args) => {
94
+ const globalLogger = getGlobalLogger();
95
+ if (obj instanceof Error) {
96
+ globalLogger.debug(obj, message, ...args);
97
+ }
98
+ else if (typeof obj === 'string') {
99
+ globalLogger.debug(obj, message, ...args);
100
+ }
101
+ else {
102
+ globalLogger.debug(obj, message, ...args);
103
+ }
104
+ }),
105
+ trace: ((obj, message, ...args) => {
106
+ const globalLogger = getGlobalLogger();
107
+ if (obj instanceof Error) {
108
+ globalLogger.trace(obj, message, ...args);
109
+ }
110
+ else if (typeof obj === 'string') {
111
+ globalLogger.trace(obj, message, ...args);
112
+ }
113
+ else {
114
+ globalLogger.trace(obj, message, ...args);
115
+ }
116
+ }),
117
+ child: (bindings) => {
118
+ return getGlobalLogger().child(bindings);
119
+ },
120
+ setContext: (context) => {
121
+ return getGlobalLogger().setContext(context);
122
+ },
123
+ flush: () => {
124
+ getGlobalLogger().flush();
125
+ },
126
+ isLevelEnabled: (level) => {
127
+ return getGlobalLogger().isLevelEnabled(level);
128
+ },
129
+ };
130
+ //# sourceMappingURL=global.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"global.js","sourceRoot":"","sources":["../src/global.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ export * from "./config";
2
+ export * from "./formatters";
3
+ export * from "./logger";
4
+ export * from "./serializers";
5
+ export * from "./transports";
6
+ export * from "./types";
7
+ export { createLogger } from "./factory";
8
+ export { getGlobalLogger, setGlobalLogger, configureGlobalLogger, logger } from "./global";
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,SAAS,CAAC;AAGxB,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,33 @@
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 __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.logger = exports.configureGlobalLogger = exports.setGlobalLogger = exports.getGlobalLogger = exports.createLogger = void 0;
18
+ // 导出所有公共 API
19
+ __exportStar(require("./config"), exports);
20
+ __exportStar(require("./formatters"), exports);
21
+ __exportStar(require("./logger"), exports);
22
+ __exportStar(require("./serializers"), exports);
23
+ __exportStar(require("./transports"), exports);
24
+ __exportStar(require("./types"), exports);
25
+ // 导出便利函数
26
+ var factory_1 = require("./factory");
27
+ Object.defineProperty(exports, "createLogger", { enumerable: true, get: function () { return factory_1.createLogger; } });
28
+ var global_1 = require("./global");
29
+ Object.defineProperty(exports, "getGlobalLogger", { enumerable: true, get: function () { return global_1.getGlobalLogger; } });
30
+ Object.defineProperty(exports, "setGlobalLogger", { enumerable: true, get: function () { return global_1.setGlobalLogger; } });
31
+ Object.defineProperty(exports, "configureGlobalLogger", { enumerable: true, get: function () { return global_1.configureGlobalLogger; } });
32
+ Object.defineProperty(exports, "logger", { enumerable: true, get: function () { return global_1.logger; } });
33
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,aAAa;AACb,2CAAyB;AACzB,+CAA6B;AAC7B,2CAAyB;AACzB,gDAA8B;AAC9B,+CAA6B;AAC7B,0CAAwB;AAExB,SAAS;AACT,qCAAyC;AAAhC,uGAAA,YAAY,OAAA;AACrB,mCAA2F;AAAlF,yGAAA,eAAe,OAAA;AAAE,yGAAA,eAAe,OAAA;AAAE,+GAAA,qBAAqB,OAAA;AAAE,gGAAA,MAAM,OAAA"}
@@ -0,0 +1,77 @@
1
+ import type { Logger as PinoLogger } from 'pino';
2
+ import type { Logger, LogContext } from './types';
3
+ /**
4
+ * HestJS Logger 实现
5
+ */
6
+ export declare class HestLogger implements Logger {
7
+ private _pino;
8
+ private _context;
9
+ constructor(pinoLogger: PinoLogger);
10
+ /**
11
+ * 获取原始 Pino Logger 实例
12
+ */
13
+ get pino(): PinoLogger;
14
+ /**
15
+ * 设置日志上下文
16
+ */
17
+ setContext(context: LogContext): Logger;
18
+ /**
19
+ * 获取子 Logger
20
+ */
21
+ child(bindings: Record<string, any>): Logger;
22
+ /**
23
+ * 构建日志对象
24
+ */
25
+ private buildLogObject;
26
+ /**
27
+ * Fatal 级别日志
28
+ */
29
+ fatal(message: string, error: Error, ...args: any[]): void;
30
+ fatal(error: Error, message?: string, ...args: any[]): void;
31
+ fatal(obj: object, message?: string, ...args: any[]): void;
32
+ fatal(message: string, ...args: any[]): void;
33
+ /**
34
+ * Error 级别日志
35
+ */
36
+ error(message: string, error: Error, ...args: any[]): void;
37
+ error(error: Error, message?: string, ...args: any[]): void;
38
+ error(obj: object, message?: string, ...args: any[]): void;
39
+ error(message: string, ...args: any[]): void;
40
+ /**
41
+ * Warn 级别日志
42
+ */
43
+ warn(message: string, error: Error, ...args: any[]): void;
44
+ warn(error: Error, message?: string, ...args: any[]): void;
45
+ warn(obj: object, message?: string, ...args: any[]): void;
46
+ warn(message: string, ...args: any[]): void;
47
+ /**
48
+ * Info 级别日志
49
+ */
50
+ info(message: string, error: Error, ...args: any[]): void;
51
+ info(error: Error, message?: string, ...args: any[]): void;
52
+ info(obj: object, message?: string, ...args: any[]): void;
53
+ info(message: string, ...args: any[]): void;
54
+ /**
55
+ * Debug 级别日志
56
+ */
57
+ debug(message: string, error: Error, ...args: any[]): void;
58
+ debug(error: Error, message?: string, ...args: any[]): void;
59
+ debug(obj: object, message?: string, ...args: any[]): void;
60
+ debug(message: string, ...args: any[]): void;
61
+ /**
62
+ * Trace 级别日志
63
+ */
64
+ trace(message: string, error: Error, ...args: any[]): void;
65
+ trace(error: Error, message?: string, ...args: any[]): void;
66
+ trace(obj: object, message?: string, ...args: any[]): void;
67
+ trace(message: string, ...args: any[]): void;
68
+ /**
69
+ * 刷新日志
70
+ */
71
+ flush(): void;
72
+ /**
73
+ * 检查是否启用了指定级别
74
+ */
75
+ isLevelEnabled(level: string): boolean;
76
+ }
77
+ //# sourceMappingURL=logger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"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"}
package/dist/logger.js ADDED
@@ -0,0 +1,131 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.HestLogger = void 0;
4
+ /**
5
+ * HestJS Logger 实现
6
+ */
7
+ class HestLogger {
8
+ constructor(pinoLogger) {
9
+ this._context = {};
10
+ this._pino = pinoLogger;
11
+ }
12
+ /**
13
+ * 获取原始 Pino Logger 实例
14
+ */
15
+ get pino() {
16
+ return this._pino;
17
+ }
18
+ /**
19
+ * 设置日志上下文
20
+ */
21
+ setContext(context) {
22
+ this._context = { ...this._context, ...context };
23
+ return this;
24
+ }
25
+ /**
26
+ * 获取子 Logger
27
+ */
28
+ child(bindings) {
29
+ const childPino = this._pino.child({ ...this._context, ...bindings });
30
+ const childLogger = new HestLogger(childPino);
31
+ childLogger._context = { ...this._context };
32
+ return childLogger;
33
+ }
34
+ /**
35
+ * 构建日志对象
36
+ */
37
+ buildLogObject(obj, message, ...args) {
38
+ const context = Object.keys(this._context).length > 0 ? this._context : undefined;
39
+ let logObj = { ...context };
40
+ let logMessage;
41
+ if (typeof obj === 'string') {
42
+ // logger.info('message') 或 logger.info('message', data, ...)
43
+ logMessage = obj;
44
+ // 检查后续参数中是否有普通对象数据(不处理Error对象)
45
+ if (message !== undefined || args.length > 0) {
46
+ const allArgs = [message, ...args].filter(arg => arg !== undefined);
47
+ for (const arg of allArgs) {
48
+ if (typeof arg === 'object' && arg !== null && !(arg instanceof Error)) {
49
+ // 如果是普通对象,合并到日志对象中
50
+ Object.assign(logObj, arg);
51
+ }
52
+ }
53
+ }
54
+ }
55
+ else if (obj && typeof obj === 'object' && !(obj instanceof Error)) {
56
+ // logger.info({ key: 'value' }, 'message') - 数据在前,消息在后
57
+ Object.assign(logObj, obj);
58
+ logMessage = message;
59
+ // 处理额外参数中的普通对象
60
+ for (const arg of args) {
61
+ if (typeof arg === 'object' && arg !== null && !(arg instanceof Error)) {
62
+ Object.assign(logObj, arg);
63
+ }
64
+ }
65
+ }
66
+ else {
67
+ // logger.info() - 没有参数,或者 obj 是其他类型(包括Error)
68
+ logMessage = message;
69
+ // 处理额外参数中的普通对象
70
+ for (const arg of args) {
71
+ if (typeof arg === 'object' && arg !== null && !(arg instanceof Error)) {
72
+ Object.assign(logObj, arg);
73
+ }
74
+ }
75
+ }
76
+ return [logObj, logMessage];
77
+ }
78
+ fatal(obj, message, ...args) {
79
+ const [logObj, msg] = this.buildLogObject(obj, message, ...args);
80
+ this._pino.fatal(logObj, msg);
81
+ }
82
+ error(obj, message, ...args) {
83
+ if (typeof obj === 'string' && message instanceof Error) {
84
+ // logger.error('message', error) - 消息在前,错误在后
85
+ // 直接让pino处理:传递Error对象作为合并对象,消息作为第二个参数
86
+ this._pino.error(message, obj);
87
+ }
88
+ else if (obj instanceof Error) {
89
+ // logger.error(error, 'message') - 错误在前,消息在后
90
+ // 直接让pino处理:传递Error对象作为合并对象,消息作为第二个参数
91
+ this._pino.error(obj, message);
92
+ }
93
+ else {
94
+ // 其他情况使用原来的方法
95
+ const [logObj, msg] = this.buildLogObject(obj, message, ...args);
96
+ this._pino.error(logObj, msg);
97
+ }
98
+ }
99
+ warn(obj, message, ...args) {
100
+ const [logObj, msg] = this.buildLogObject(obj, message, ...args);
101
+ this._pino.warn(logObj, msg);
102
+ }
103
+ info(obj, message, ...args) {
104
+ const [logObj, msg] = this.buildLogObject(obj, message, ...args);
105
+ this._pino.info(logObj, msg);
106
+ }
107
+ debug(obj, message, ...args) {
108
+ const [logObj, msg] = this.buildLogObject(obj, message, ...args);
109
+ this._pino.debug(logObj, msg);
110
+ }
111
+ trace(obj, message, ...args) {
112
+ const [logObj, msg] = this.buildLogObject(obj, message, ...args);
113
+ this._pino.trace(logObj, msg);
114
+ }
115
+ /**
116
+ * 刷新日志
117
+ */
118
+ flush() {
119
+ if (typeof this._pino.flush === 'function') {
120
+ this._pino.flush();
121
+ }
122
+ }
123
+ /**
124
+ * 检查是否启用了指定级别
125
+ */
126
+ isLevelEnabled(level) {
127
+ return this._pino.isLevelEnabled(level);
128
+ }
129
+ }
130
+ exports.HestLogger = HestLogger;
131
+ //# sourceMappingURL=logger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,35 @@
1
+ import * as stdSerializers from 'pino-std-serializers';
2
+ /**
3
+ * 错误序列化器 - 扩展标准错误序列化器
4
+ */
5
+ export declare const errorSerializer: (err: Error) => any;
6
+ /**
7
+ * 请求序列化器
8
+ */
9
+ export declare const requestSerializer: (req: any) => any;
10
+ /**
11
+ * 响应序列化器
12
+ */
13
+ export declare const responseSerializer: (res: any) => any;
14
+ /**
15
+ * 用户序列化器 - 避免敏感信息泄露
16
+ */
17
+ export declare const userSerializer: (user: any) => any;
18
+ /**
19
+ * 数据库查询序列化器
20
+ */
21
+ export declare const querySerializer: (query: any) => any;
22
+ /**
23
+ * 获取默认序列化器
24
+ */
25
+ export declare function getDefaultSerializers(): {
26
+ req: typeof stdSerializers.req;
27
+ res: typeof stdSerializers.res;
28
+ user: (user: any) => any;
29
+ query: (query: any) => any;
30
+ };
31
+ /**
32
+ * 创建自定义序列化器
33
+ */
34
+ export declare function createSerializer<T = any>(fn: (value: T) => any): (value: T) => any;
35
+ //# sourceMappingURL=serializers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"serializers.d.ts","sourceRoot":"","sources":["../src/serializers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,cAAc,MAAM,sBAAsB,CAAC;AAEvD;;GAEG;AACH,eAAO,MAAM,eAAe,GAAI,KAAK,KAAK,QAYzC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,iBAAiB,GAAI,KAAK,GAAG,QAqBzC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,kBAAkB,GAAI,KAAK,GAAG,QAU1C,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,cAAc,GAAI,MAAM,GAAG,QAKvC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,eAAe,GAAI,OAAO,GAAG,QAWzC,CAAC;AAEF;;GAEG;AACH,wBAAgB,qBAAqB;;;iBA1BA,GAAG;mBAUD,GAAG;EA0BzC;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,GAAG,GAAG,EACtC,EAAE,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,GAAG,GACpB,CAAC,KAAK,EAAE,CAAC,KAAK,GAAG,CASnB"}