@nexe/logger 0.1.0 → 0.1.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/README.md +17 -15
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +4 -5
- package/dist/config.js.map +1 -1
- package/dist/factory.d.ts.map +1 -1
- package/dist/factory.js +0 -18
- package/dist/factory.js.map +1 -1
- package/dist/formatters.d.ts +5 -1
- package/dist/formatters.d.ts.map +1 -1
- package/dist/formatters.js +1 -5
- package/dist/formatters.js.map +1 -1
- package/dist/logger.d.ts.map +1 -1
- package/dist/logger.js +43 -18
- package/dist/logger.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
@@ -25,8 +25,10 @@
|
|
25
25
|
- 🛡️ **Security First** - Built-in redaction for sensitive information
|
26
26
|
- 📦 **Framework Integration** - Seamlessly integrates with Nexe framework
|
27
27
|
|
28
|
+
|
28
29
|

|
29
30
|
|
31
|
+
|
30
32
|
## 📦 Installation
|
31
33
|
|
32
34
|
```bash
|
@@ -69,7 +71,7 @@ const logger = createLogger('app');
|
|
69
71
|
logger.info('🚀 Starting Nexe application...');
|
70
72
|
|
71
73
|
const app = new Hono();
|
72
|
-
app.get('/', c => {
|
74
|
+
app.get('/', (c) => {
|
73
75
|
return c.text('Hello Nexe!');
|
74
76
|
});
|
75
77
|
|
@@ -89,8 +91,8 @@ const customLogger = createLogger('MyService', {
|
|
89
91
|
options: {
|
90
92
|
colorize: true,
|
91
93
|
translateTime: 'yyyy-mm-dd HH:MM:ss.l',
|
92
|
-
}
|
93
|
-
}
|
94
|
+
}
|
95
|
+
}
|
94
96
|
});
|
95
97
|
|
96
98
|
customLogger.debug('Debug information');
|
@@ -167,12 +169,12 @@ const logger = createLogger('MyApp', {
|
|
167
169
|
redact: ['password', 'token'], // Hide sensitive fields
|
168
170
|
formatters: {
|
169
171
|
level: (label, number) => ({ level: number }),
|
170
|
-
bindings: bindings => ({ service: 'MyApp', ...bindings })
|
172
|
+
bindings: (bindings) => ({ service: 'MyApp', ...bindings })
|
171
173
|
},
|
172
174
|
serializers: {
|
173
|
-
req: req => ({ method: req.method, url: req.url }),
|
174
|
-
res: res => ({ statusCode: res.statusCode })
|
175
|
-
}
|
175
|
+
req: (req) => ({ method: req.method, url: req.url }),
|
176
|
+
res: (res) => ({ statusCode: res.statusCode })
|
177
|
+
}
|
176
178
|
});
|
177
179
|
```
|
178
180
|
|
@@ -203,7 +205,7 @@ import { createConsoleTransport } from '@nexe/logger';
|
|
203
205
|
|
204
206
|
const transport = createConsoleTransport({
|
205
207
|
colorize: true,
|
206
|
-
translateTime: 'yyyy-mm-dd HH:MM:ss.l'
|
208
|
+
translateTime: 'yyyy-mm-dd HH:MM:ss.l'
|
207
209
|
});
|
208
210
|
```
|
209
211
|
|
@@ -214,7 +216,7 @@ import { createFileTransport } from '@nexe/logger';
|
|
214
216
|
|
215
217
|
const transport = createFileTransport({
|
216
218
|
destination: './logs/app.log',
|
217
|
-
mkdir: true
|
219
|
+
mkdir: true
|
218
220
|
});
|
219
221
|
```
|
220
222
|
|
@@ -227,7 +229,7 @@ const transport = createRotatingFileTransport({
|
|
227
229
|
filename: './logs/app-%DATE%.log',
|
228
230
|
frequency: 'daily',
|
229
231
|
maxSize: '10M',
|
230
|
-
maxFiles: '7'
|
232
|
+
maxFiles: '7'
|
231
233
|
});
|
232
234
|
```
|
233
235
|
|
@@ -237,13 +239,13 @@ const transport = createRotatingFileTransport({
|
|
237
239
|
|
238
240
|
```typescript
|
239
241
|
const logger = createLogger('SecureApp', {
|
240
|
-
redact: ['password', 'token', 'authorization', 'cookie']
|
242
|
+
redact: ['password', 'token', 'authorization', 'cookie']
|
241
243
|
});
|
242
244
|
|
243
245
|
// This will automatically redact sensitive fields
|
244
|
-
logger.info('User data', {
|
245
|
-
username: 'john_doe',
|
246
|
-
password: 'secret123'
|
246
|
+
logger.info('User data', {
|
247
|
+
username: 'john_doe',
|
248
|
+
password: 'secret123' // This will be redacted
|
247
249
|
});
|
248
250
|
```
|
249
251
|
|
@@ -258,7 +260,7 @@ import { createLogger, LogLevel } from '@nexe/logger';
|
|
258
260
|
|
259
261
|
// Create test logger with minimal output
|
260
262
|
const testLogger = createLogger('Test', {
|
261
|
-
level: LogLevel.WARN
|
263
|
+
level: LogLevel.WARN // Only log warnings and errors in tests
|
262
264
|
});
|
263
265
|
```
|
264
266
|
|
package/dist/config.d.ts.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAY,MAAM,SAAS,CAAC;AAEjD;;GAEG;AACH,eAAO,MAAM,cAAc,EAAE,YAU5B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,kBAAkB,EAAE,OAAO,CAAC,YAAY,CAGpD,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,iBAAiB,EAAE,OAAO,CAAC,YAAY,CAGnD,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,WAAW,EAAE,OAAO,CAAC,YAAY,CAE7C,CAAC;AAEF;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAexE;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,OAAO,CAAC,YAAY,CAAC,CAY3D;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,GAAG,OAAO,EAAE,OAAO,CAAC,YAAY,CAAC,EAAE,GAAG,YAAY,CAI7E"}
|
package/dist/config.js
CHANGED
@@ -61,13 +61,12 @@ function getEnvironmentConfig(env) {
|
|
61
61
|
* 从环境变量创建配置
|
62
62
|
*/
|
63
63
|
function createConfigFromEnv() {
|
64
|
-
const env = process.env;
|
65
64
|
const config = {};
|
66
|
-
if (env.LOG_LEVEL) {
|
67
|
-
config.level = env.LOG_LEVEL;
|
65
|
+
if (process.env.LOG_LEVEL) {
|
66
|
+
config.level = process.env.LOG_LEVEL;
|
68
67
|
}
|
69
|
-
if (env.LOG_NAME) {
|
70
|
-
config.name = env.LOG_NAME;
|
68
|
+
if (process.env.LOG_NAME) {
|
69
|
+
config.name = process.env.LOG_NAME;
|
71
70
|
}
|
72
71
|
return config;
|
73
72
|
}
|
package/dist/config.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":";;;AA2CA,oDAeC;AAKD,
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":";;;AA2CA,oDAeC;AAKD,kDAYC;AAKD,kCAIC;AApFD,mCAAiD;AAEjD;;GAEG;AACU,QAAA,cAAc,GAAiB;IAC1C,KAAK,EAAE,gBAAQ,CAAC,IAAI;IACpB,SAAS,EAAE,IAAI;IACf,IAAI,EAAE,QAAQ;IACd,UAAU,EAAE,KAAK;IACjB,QAAQ,EAAE,KAAK;IACf,IAAI,EAAE;QACJ,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,QAAQ,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE;KACnC;CACF,CAAC;AAEF;;GAEG;AACU,QAAA,kBAAkB,GAA0B;IACvD,KAAK,EAAE,gBAAQ,CAAC,KAAK;IACrB,mDAAmD;CACpD,CAAC;AAEF;;GAEG;AACU,QAAA,iBAAiB,GAA0B;IACtD,KAAK,EAAE,gBAAQ,CAAC,IAAI;IACpB,MAAM,EAAE,CAAC,UAAU,EAAE,OAAO,EAAE,eAAe,EAAE,QAAQ,CAAC;CACzD,CAAC;AAEF;;GAEG;AACU,QAAA,WAAW,GAA0B;IAChD,KAAK,EAAE,gBAAQ,CAAC,IAAI;CACrB,CAAC;AAEF;;GAEG;AACH,SAAgB,oBAAoB,CAAC,GAAY;IAC/C,MAAM,WAAW,GAAG,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,aAAa,CAAC;IAEjE,QAAQ,WAAW,EAAE,CAAC;QACpB,KAAK,YAAY,CAAC;QAClB,KAAK,MAAM;YACT,OAAO,yBAAiB,CAAC;QAC3B,KAAK,MAAM,CAAC;QACZ,KAAK,SAAS;YACZ,OAAO,mBAAW,CAAC;QACrB,KAAK,aAAa,CAAC;QACnB,KAAK,KAAK,CAAC;QACX;YACE,OAAO,0BAAkB,CAAC;IAC9B,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAgB,mBAAmB;IACjC,MAAM,MAAM,GAA0B,EAAE,CAAC;IAEzC,IAAI,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC;QAC1B,MAAM,CAAC,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,SAAqB,CAAC;IACnD,CAAC;IAED,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;QACzB,MAAM,CAAC,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC;IACrC,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,SAAgB,WAAW,CAAC,GAAG,OAAgC;IAC7D,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC,EAAE;QACpE,GAAG,sBAAc;KAClB,CAAiB,CAAC;AACrB,CAAC"}
|
package/dist/factory.d.ts.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../src/factory.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEpD;;GAEG;AACH,wBAAgB,YAAY,CAC1B,IAAI,CAAC,EAAE,MAAM,EACb,MAAM,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,GAC7B,MAAM,
|
1
|
+
{"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../src/factory.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEpD;;GAEG;AACH,wBAAgB,YAAY,CAC1B,IAAI,CAAC,EAAE,MAAM,EACb,MAAM,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,GAC7B,MAAM,CA0DR;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC5B,MAAM,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,GAC7B,MAAM,CAGR;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAC5B,MAAM,CAER"}
|
package/dist/factory.js
CHANGED
@@ -40,25 +40,7 @@ function createLogger(name, config) {
|
|
40
40
|
const stream = (0, pino_pretty_1.default)({
|
41
41
|
levelFirst: false,
|
42
42
|
colorize: true,
|
43
|
-
ignore: "pid,hostname,error", // 忽略重复的error字段,只显示err
|
44
43
|
translateTime: "yy-mm-dd HH:MM:ss.l",
|
45
|
-
messageFormat: "{msg}",
|
46
|
-
customLevels: {
|
47
|
-
fatal: 60,
|
48
|
-
error: 50,
|
49
|
-
warn: 40,
|
50
|
-
info: 30,
|
51
|
-
debug: 20,
|
52
|
-
trace: 10,
|
53
|
-
},
|
54
|
-
customColors: {
|
55
|
-
60: "bgRed",
|
56
|
-
50: "red",
|
57
|
-
40: "yellow",
|
58
|
-
30: "green",
|
59
|
-
20: "blue",
|
60
|
-
10: "gray",
|
61
|
-
},
|
62
44
|
});
|
63
45
|
const pinoConfig = {
|
64
46
|
name: finalConfig.name || name || "HestJS",
|
package/dist/factory.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"factory.js","sourceRoot":"","sources":["../src/factory.ts"],"names":[],"mappings":";;;;;AAeA,
|
1
|
+
{"version":3,"file":"factory.js","sourceRoot":"","sources":["../src/factory.ts"],"names":[],"mappings":";;;;;AAeA,oCA6DC;AAKD,0DAOC;AAKD,8CAKC;AAlGD,gDAAwB;AACxB,8DAAiC;AACjC,qCAIkB;AAClB,6CAAoD;AACpD,qCAAsC;AACtC,+CAAsD;AAGtD;;GAEG;AACH,SAAgB,YAAY,CAC1B,IAAa,EACb,MAA8B;IAE9B,sCAAsC;IACtC,MAAM,SAAS,GAAG,IAAA,6BAAoB,GAAE,CAAC;IACzC,MAAM,YAAY,GAAG,IAAA,4BAAmB,GAAE,CAAC;IAC3C,MAAM,UAAU,GAAG,MAAM,IAAI,EAAE,CAAC;IAEhC,iBAAiB;IACjB,IAAI,IAAI,EAAE,CAAC;QACT,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC;IACzB,CAAC;IAED,MAAM,WAAW,GAAG,IAAA,oBAAW,EAAC,SAAS,EAAE,YAAY,EAAE,UAAU,CAAC,CAAC;IAErE,gBAAgB;IAChB,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC;QAC7B,WAAW,CAAC,WAAW,GAAG,IAAA,mCAAqB,GAAE,CAAC;IACpD,CAAC;IAED,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,CAAC;QAC5B,WAAW,CAAC,UAAU,GAAG,IAAA,iCAAoB,GAAE,CAAC;IAClD,CAAC;IAED,gBAAgB;IAChB,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,aAAa,CAAC;IAC1D,IAAI,UAAe,CAAC;IAEpB,IAAI,WAAW,KAAK,aAAa,IAAI,WAAW,KAAK,KAAK,EAAE,CAAC;QAC3D,yBAAyB;QACzB,MAAM,MAAM,GAAG,IAAA,qBAAM,EAAC;YACpB,UAAU,EAAE,KAAK;YACjB,QAAQ,EAAE,IAAI;YACd,aAAa,EAAE,qBAAqB;SACrC,CAAC,CAAC;QAEH,MAAM,UAAU,GAAG;YACjB,IAAI,EAAE,WAAW,CAAC,IAAI,IAAI,IAAI,IAAI,QAAQ;YAC1C,KAAK,EAAE,WAAW,CAAC,KAAK,IAAI,OAAO;YACnC,WAAW,EAAE,WAAW,CAAC,WAAW,IAAI,EAAE;YAC1C,UAAU,EAAE,WAAW,CAAC,UAAU,IAAI,EAAE;SACzC,CAAC;QAEF,UAAU,GAAG,IAAA,cAAI,EAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IACxC,CAAC;SAAM,CAAC;QACN,yBAAyB;QACzB,UAAU,GAAG,IAAA,cAAI,EAAC;YAChB,IAAI,EAAE,WAAW,CAAC,IAAI,IAAI,QAAQ;YAClC,KAAK,EAAE,WAAW,CAAC,KAAK,IAAI,MAAM;YAClC,WAAW,EAAE,WAAW,CAAC,WAAW,IAAI,EAAE;YAC1C,UAAU,EAAE,WAAW,CAAC,UAAU,IAAI,EAAE;SACzC,CAAC,CAAC;IACL,CAAC;IAED,sCAAsC;IACtC,MAAM,UAAU,GAAG,IAAI,IAAI,WAAW,CAAC,IAAI,IAAI,QAAQ,CAAC;IACxD,MAAM,cAAc,GAAG,UAAU,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC;IAE9D,mBAAmB;IACnB,OAAO,IAAI,mBAAU,CAAC,cAAc,CAAC,CAAC;AACxC,CAAC;AAED;;GAEG;AACH,SAAgB,uBAAuB,CACrC,IAAY,EACZ,OAA4B,EAC5B,MAA8B;IAE9B,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAC1C,OAAO,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;AACpC,CAAC;AAED;;GAEG;AACH,SAAgB,iBAAiB,CAC/B,MAAc,EACd,QAA6B;IAE7B,OAAO,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;AAChC,CAAC"}
|
package/dist/formatters.d.ts
CHANGED
@@ -34,7 +34,11 @@ export declare function getDefaultFormatters(): {
|
|
34
34
|
level: number;
|
35
35
|
};
|
36
36
|
bindings: (_bindings: Record<string, any>) => {};
|
37
|
-
log: (object: Record<string, any>) =>
|
37
|
+
log: (object: Record<string, any>) => {
|
38
|
+
"@timestamp": any;
|
39
|
+
level: any;
|
40
|
+
message: any;
|
41
|
+
};
|
38
42
|
};
|
39
43
|
/**
|
40
44
|
* 创建自定义格式化器
|
package/dist/formatters.d.ts.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"formatters.d.ts","sourceRoot":"","sources":["../src/formatters.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,eAAO,MAAM,cAAc,GAAI,QAAQ,MAAM,EAAE,QAAQ,MAAM;;CAS5D,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,kBAAkB;;CAI9B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,iBAAiB,GAAI,WAAW,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,OAa/D,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,YAAY,GAAI,QAAQ,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;;;;CAUvD,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,cAAc,GAAI,QAAQ,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,wBAezD,CAAC;AAEF;;GAEG;AACH,wBAAgB,oBAAoB;oBA5EG,MAAM,UAAU,MAAM;;;0BAuBhB,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;
|
1
|
+
{"version":3,"file":"formatters.d.ts","sourceRoot":"","sources":["../src/formatters.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,eAAO,MAAM,cAAc,GAAI,QAAQ,MAAM,EAAE,QAAQ,MAAM;;CAS5D,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,kBAAkB;;CAI9B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,iBAAiB,GAAI,WAAW,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,OAa/D,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,YAAY,GAAI,QAAQ,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;;;;CAUvD,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,cAAc,GAAI,QAAQ,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,wBAezD,CAAC;AAEF;;GAEG;AACH,wBAAgB,oBAAoB;oBA5EG,MAAM,UAAU,MAAM;;;0BAuBhB,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;kBAkB3B,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;;;;;EAyCvD;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACrD,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,GACnB,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,CAalB"}
|
package/dist/formatters.js
CHANGED
@@ -83,11 +83,7 @@ function getDefaultFormatters() {
|
|
83
83
|
return {
|
84
84
|
level: exports.levelFormatter,
|
85
85
|
bindings: exports.bindingsFormatter,
|
86
|
-
log:
|
87
|
-
// 组合多个格式化器
|
88
|
-
const formatted = (0, exports.logFormatter)(object);
|
89
|
-
return (0, exports.errorFormatter)(formatted);
|
90
|
-
},
|
86
|
+
log: exports.logFormatter, // 直接使用logFormatter,不再使用errorFormatter
|
91
87
|
};
|
92
88
|
}
|
93
89
|
/**
|
package/dist/formatters.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"formatters.js","sourceRoot":"","sources":["../src/formatters.ts"],"names":[],"mappings":";;;AA+EA,
|
1
|
+
{"version":3,"file":"formatters.js","sourceRoot":"","sources":["../src/formatters.ts"],"names":[],"mappings":";;;AA+EA,oDAMC;AAKD,0CAeC;AAzGD;;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,oBAAY,EAAE,sCAAsC;KAC1D,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"}
|
package/dist/logger.d.ts.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,MAAM,CAAC;AACjD,OAAO,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAElD;;GAEG;AACH,qBAAa,UAAW,YAAW,MAAM;IACvC,OAAO,CAAC,KAAK,CAAa;IAC1B,OAAO,CAAC,QAAQ,CAAkB;gBAEtB,UAAU,EAAE,UAAU;IAIlC;;OAEG;IACH,IAAI,IAAI,IAAI,UAAU,CAErB;IAED;;OAEG;IACH,UAAU,CAAC,OAAO,EAAE,UAAU,GAAG,MAAM;IAKvC;;OAEG;IACH,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM;IAO5C;;OAEG;IACH,OAAO,CAAC,cAAc;
|
1
|
+
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"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"}
|
package/dist/logger.js
CHANGED
@@ -36,7 +36,7 @@ class HestLogger {
|
|
36
36
|
*/
|
37
37
|
buildLogObject(obj, message, ...args) {
|
38
38
|
const context = Object.keys(this._context).length > 0 ? this._context : undefined;
|
39
|
-
let logObj = { ...context };
|
39
|
+
let logObj = context ? { ...context } : {};
|
40
40
|
let logMessage;
|
41
41
|
if (typeof obj === 'string') {
|
42
42
|
// logger.info('message') 或 logger.info('message', data, ...)
|
@@ -49,6 +49,10 @@ class HestLogger {
|
|
49
49
|
// 如果是普通对象,合并到日志对象中
|
50
50
|
Object.assign(logObj, arg);
|
51
51
|
}
|
52
|
+
else if (arg instanceof Error) {
|
53
|
+
// 如果是Error对象,添加到err字段让pino处理
|
54
|
+
logObj.err = arg;
|
55
|
+
}
|
52
56
|
}
|
53
57
|
}
|
54
58
|
}
|
@@ -61,16 +65,42 @@ class HestLogger {
|
|
61
65
|
if (typeof arg === 'object' && arg !== null && !(arg instanceof Error)) {
|
62
66
|
Object.assign(logObj, arg);
|
63
67
|
}
|
68
|
+
else if (arg instanceof Error) {
|
69
|
+
// 如果是Error对象,添加到err字段让pino处理
|
70
|
+
logObj.err = arg;
|
71
|
+
}
|
72
|
+
}
|
73
|
+
}
|
74
|
+
else if (obj instanceof Error) {
|
75
|
+
// logger.info(error, 'message') - 错误在前,消息在后
|
76
|
+
logObj.err = obj;
|
77
|
+
logMessage = message;
|
78
|
+
// 处理额外参数中的普通对象
|
79
|
+
for (const arg of args) {
|
80
|
+
if (typeof arg === 'object' && arg !== null && !(arg instanceof Error)) {
|
81
|
+
Object.assign(logObj, arg);
|
82
|
+
}
|
83
|
+
else if (arg instanceof Error) {
|
84
|
+
// 多个错误对象的情况,可以用数组或者其他字段名
|
85
|
+
if (!logObj.additionalErrors) {
|
86
|
+
logObj.additionalErrors = [];
|
87
|
+
}
|
88
|
+
logObj.additionalErrors.push(arg);
|
89
|
+
}
|
64
90
|
}
|
65
91
|
}
|
66
92
|
else {
|
67
|
-
// logger.info() - 没有参数,或者 obj
|
93
|
+
// logger.info() - 没有参数,或者 obj 是其他类型
|
68
94
|
logMessage = message;
|
69
95
|
// 处理额外参数中的普通对象
|
70
96
|
for (const arg of args) {
|
71
97
|
if (typeof arg === 'object' && arg !== null && !(arg instanceof Error)) {
|
72
98
|
Object.assign(logObj, arg);
|
73
99
|
}
|
100
|
+
else if (arg instanceof Error) {
|
101
|
+
// 如果是Error对象,添加到err字段让pino处理
|
102
|
+
logObj.err = arg;
|
103
|
+
}
|
74
104
|
}
|
75
105
|
}
|
76
106
|
return [logObj, logMessage];
|
@@ -80,21 +110,9 @@ class HestLogger {
|
|
80
110
|
this._pino.fatal(logObj, msg);
|
81
111
|
}
|
82
112
|
error(obj, message, ...args) {
|
83
|
-
|
84
|
-
|
85
|
-
|
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
|
-
}
|
113
|
+
// 统一处理所有情况,避免错误对象重复处理
|
114
|
+
const [logObj, msg] = this.buildLogObject(obj, message, ...args);
|
115
|
+
this._pino.error(logObj, msg);
|
98
116
|
}
|
99
117
|
warn(obj, message, ...args) {
|
100
118
|
const [logObj, msg] = this.buildLogObject(obj, message, ...args);
|
@@ -102,7 +120,14 @@ class HestLogger {
|
|
102
120
|
}
|
103
121
|
info(obj, message, ...args) {
|
104
122
|
const [logObj, msg] = this.buildLogObject(obj, message, ...args);
|
105
|
-
|
123
|
+
// 如果有对象数据,传递给 pino 作为第一个参数
|
124
|
+
if (logObj && Object.keys(logObj).length > 0) {
|
125
|
+
this._pino.info(logObj, msg);
|
126
|
+
}
|
127
|
+
else {
|
128
|
+
// 只有消息,直接传递
|
129
|
+
this._pino.info(msg);
|
130
|
+
}
|
106
131
|
}
|
107
132
|
debug(obj, message, ...args) {
|
108
133
|
const [logObj, msg] = this.buildLogObject(obj, message, ...args);
|
package/dist/logger.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":";;;AAGA;;GAEG;AACH,MAAa,UAAU;IAIrB,YAAY,UAAsB;QAF1B,aAAQ,GAAe,EAAE,CAAC;QAGhC,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC;IAC1B,CAAC;IAED;;OAEG;IACH,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED;;OAEG;IACH,UAAU,CAAC,OAAmB;QAC5B,IAAI,CAAC,QAAQ,GAAG,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE,GAAG,OAAO,EAAE,CAAC;QACjD,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,QAA6B;QACjC,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE,GAAG,QAAQ,EAAE,CAAC,CAAC;QACtE,MAAM,WAAW,GAAG,IAAI,UAAU,CAAC,SAAS,CAAC,CAAC;QAC9C,WAAW,CAAC,QAAQ,GAAG,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC5C,OAAO,WAAW,CAAC;IACrB,CAAC;IAED;;OAEG;IACK,cAAc,CAAC,GAAqB,EAAE,OAAgB,EAAE,GAAG,IAAW;QAC5E,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;QAClF,IAAI,MAAM,GAAQ,EAAE,GAAG,OAAO,EAAE,CAAC;
|
1
|
+
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"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"}
|