@rife/logger 0.0.6-beta.12 → 0.0.6-beta.13
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/cjs/pino/index.cjs +14 -1
- package/dist/cjs/pino/worker/pino-file.cjs +187 -95
- package/dist/cjs/pino/worker/pino-pretty.cjs +2 -48
- package/dist/cjs/pino/worker/pino-rotate.cjs +10 -9
- package/dist/cjs/pino/worker/pino-worker.cjs +191 -99
- package/dist/cjs/pino/worker.cjs +116 -0
- package/dist/cjs/worker/index.cjs +5 -0
- package/dist/esm/common.mjs +2 -3
- package/dist/esm/env.mjs +1 -2
- package/dist/esm/index.mjs +1 -2
- package/dist/esm/pino/index.mjs +18 -18
- package/dist/esm/pino/rotate.mjs +5 -15
- package/dist/esm/pino/worker/pino-file.cjs +187 -95
- package/dist/esm/pino/worker/pino-pretty.cjs +2 -48
- package/dist/esm/pino/worker/pino-rotate.cjs +10 -9
- package/dist/esm/pino/worker/pino-worker.cjs +191 -99
- package/dist/esm/pino/worker.mjs +74 -0
- package/dist/esm/rslib-runtime.mjs +19 -0
- package/dist/esm/test.mjs +2 -3
- package/dist/esm/trace.mjs +1 -2
- package/dist/esm/worker/index.mjs +1 -0
- package/dist/worker/pino-file.cjs +187 -95
- package/dist/worker/pino-pretty.cjs +2 -48
- package/dist/worker/pino-rotate.cjs +10 -9
- package/dist/worker/pino-worker.cjs +191 -99
- package/package.json +14 -6
- package/src/pino/index.ts +26 -1
- package/src/pino/worker.ts +82 -0
- package/src/worker/index.ts +3 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rife/logger",
|
|
3
|
-
"version": "0.0.6-beta.
|
|
3
|
+
"version": "0.0.6-beta.13",
|
|
4
4
|
"description": "",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"types": "./src/index.ts",
|
|
@@ -14,12 +14,20 @@
|
|
|
14
14
|
"types": "./src/pino/index.ts",
|
|
15
15
|
"require": "./dist/cjs/pino/index.cjs",
|
|
16
16
|
"import": "./dist/esm/pino/index.mjs"
|
|
17
|
+
},
|
|
18
|
+
"./worker": {
|
|
19
|
+
"types": "./src/worker/index.ts",
|
|
20
|
+
"require": "./dist/cjs/worker/index.cjs",
|
|
21
|
+
"import": "./dist/esm/worker/index.mjs"
|
|
17
22
|
}
|
|
18
23
|
},
|
|
19
24
|
"typesVersions": {
|
|
20
25
|
"*": {
|
|
21
26
|
"pino": [
|
|
22
27
|
"./src/pino"
|
|
28
|
+
],
|
|
29
|
+
"worker": [
|
|
30
|
+
"./src/worker"
|
|
23
31
|
]
|
|
24
32
|
}
|
|
25
33
|
},
|
|
@@ -29,15 +37,15 @@
|
|
|
29
37
|
"tsconfig.json"
|
|
30
38
|
],
|
|
31
39
|
"dependencies": {
|
|
32
|
-
"pino": "^10.1
|
|
40
|
+
"pino": "^10.3.1",
|
|
33
41
|
"pino-pretty": "^13.1.3",
|
|
34
|
-
"pino-std-serializers": "^7.
|
|
35
|
-
"rotating-file-stream": "^3.2.
|
|
42
|
+
"pino-std-serializers": "^7.1.0",
|
|
43
|
+
"rotating-file-stream": "^3.2.9"
|
|
36
44
|
},
|
|
37
45
|
"devDependencies": {
|
|
38
46
|
"thread-stream": "^4.0.0",
|
|
39
|
-
"@rife/cli": "0.0.6-beta.
|
|
40
|
-
"@rife/plugin-rstack": "0.0.1-beta.
|
|
47
|
+
"@rife/cli": "0.0.6-beta.22",
|
|
48
|
+
"@rife/plugin-rstack": "0.0.1-beta.20"
|
|
41
49
|
},
|
|
42
50
|
"scripts": {
|
|
43
51
|
"dev": "rife dev",
|
package/src/pino/index.ts
CHANGED
|
@@ -3,15 +3,20 @@ import path from 'path';
|
|
|
3
3
|
import pino from 'pino';
|
|
4
4
|
|
|
5
5
|
import { genTraceId, getTraceId, runInTrace } from '../trace';
|
|
6
|
+
export { pino };
|
|
6
7
|
|
|
7
8
|
declare var __isNodeSingleFileBundle: any;
|
|
8
9
|
declare var __isVite: any;
|
|
9
10
|
|
|
11
|
+
/** @ts-ignore 当前是cloudflare worker */
|
|
12
|
+
const isCFWorker = typeof WebSocketPair !== 'undefined';
|
|
13
|
+
|
|
10
14
|
// https://github.com/pinojs/pino/blob/master/docs/api.md
|
|
11
15
|
function getPinoConfig() {
|
|
12
16
|
const targets: any = [];
|
|
13
17
|
|
|
14
18
|
const rotate = `./rotate${path.extname(__filename)}`;
|
|
19
|
+
|
|
15
20
|
targets.push({
|
|
16
21
|
level: 'debug',
|
|
17
22
|
target: rotate,
|
|
@@ -52,7 +57,7 @@ function getPinoConfig() {
|
|
|
52
57
|
transport: { targets },
|
|
53
58
|
mixin(data: any) {
|
|
54
59
|
// {"level":30,"time":1726065716643,"pid":21968,"hostname":"Win-LH"}
|
|
55
|
-
// 基础字段不能重复
|
|
60
|
+
// 基础字段不能重复
|
|
56
61
|
const traceId = data?.traceId;
|
|
57
62
|
delete data.traceId;
|
|
58
63
|
delete data.level;
|
|
@@ -65,6 +70,26 @@ function getPinoConfig() {
|
|
|
65
70
|
}
|
|
66
71
|
return { traceId };
|
|
67
72
|
},
|
|
73
|
+
// cloudfare worker 需要自己实现输出
|
|
74
|
+
browser: {
|
|
75
|
+
write: (o: any) => {
|
|
76
|
+
// https://github.com/pinojs/pino/blob/main/docs/api.md#level-1
|
|
77
|
+
const { name, time, level, ...rest } = o;
|
|
78
|
+
if (name) {
|
|
79
|
+
rest.message = rest.message ? `[${name}] ${rest.message}` : `[${name}]`;
|
|
80
|
+
}
|
|
81
|
+
if (!rest.traceId) {
|
|
82
|
+
rest.traceId = getTraceId();
|
|
83
|
+
}
|
|
84
|
+
if (level >= 50) {
|
|
85
|
+
console.error(rest);
|
|
86
|
+
} else if (level >= 40) {
|
|
87
|
+
console.warn(rest);
|
|
88
|
+
} else {
|
|
89
|
+
console.log(rest);
|
|
90
|
+
}
|
|
91
|
+
},
|
|
92
|
+
},
|
|
68
93
|
};
|
|
69
94
|
|
|
70
95
|
return config;
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import pino from 'pino';
|
|
2
|
+
import path from 'path';
|
|
3
|
+
|
|
4
|
+
import { getTraceId } from '../trace';
|
|
5
|
+
|
|
6
|
+
// https://github.com/pinojs/pino/blob/master/docs/api.md
|
|
7
|
+
function getPinoConfig() {
|
|
8
|
+
const targets: any = [];
|
|
9
|
+
|
|
10
|
+
if (process.env.NODE_ENV === 'production') {
|
|
11
|
+
} else {
|
|
12
|
+
const rotate = `./rotate${path.extname(__filename)}`;
|
|
13
|
+
targets.push({
|
|
14
|
+
level: 'debug',
|
|
15
|
+
target: rotate,
|
|
16
|
+
options: { path: './logs/' },
|
|
17
|
+
});
|
|
18
|
+
targets.push({
|
|
19
|
+
level: 'debug',
|
|
20
|
+
target: 'pino-pretty', // must be installed separately,
|
|
21
|
+
options: {
|
|
22
|
+
// https://github.com/pinojs/pino-pretty?tab=readme-ov-file#options
|
|
23
|
+
ignore: 'pid',
|
|
24
|
+
messageKey: 'message',
|
|
25
|
+
},
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
const config: pino.LoggerOptions = {
|
|
30
|
+
transport: { targets },
|
|
31
|
+
mixin(data: any) {
|
|
32
|
+
// {"level":30,"time":1726065716643,"pid":21968,"hostname":"Win-LH"}
|
|
33
|
+
// 基础字段不能重复
|
|
34
|
+
const traceId = data?.traceId;
|
|
35
|
+
delete data.traceId;
|
|
36
|
+
delete data.level;
|
|
37
|
+
delete data.time;
|
|
38
|
+
delete data.pid;
|
|
39
|
+
delete data.name;
|
|
40
|
+
delete data.hostname;
|
|
41
|
+
if (!traceId) {
|
|
42
|
+
return { traceId: getTraceId() };
|
|
43
|
+
}
|
|
44
|
+
return { traceId };
|
|
45
|
+
},
|
|
46
|
+
browser: {
|
|
47
|
+
write: (o: any) => {
|
|
48
|
+
// https://github.com/pinojs/pino/blob/main/docs/api.md#level-1
|
|
49
|
+
const { name, time, level, ...rest } = o;
|
|
50
|
+
if (name) {
|
|
51
|
+
rest.message = rest.message ? `[${name}] ${rest.message}` : `[${name}]`;
|
|
52
|
+
}
|
|
53
|
+
if (!rest.traceId) {
|
|
54
|
+
rest.traceId = getTraceId();
|
|
55
|
+
}
|
|
56
|
+
if (level >= 50) {
|
|
57
|
+
console.error(rest);
|
|
58
|
+
} else if (level >= 40) {
|
|
59
|
+
console.warn(rest);
|
|
60
|
+
} else {
|
|
61
|
+
console.log(rest);
|
|
62
|
+
}
|
|
63
|
+
},
|
|
64
|
+
},
|
|
65
|
+
};
|
|
66
|
+
|
|
67
|
+
return config;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
export function createLogger() {
|
|
71
|
+
const logger = pino({
|
|
72
|
+
// https://github.com/pinojs/pino/blob/main/docs/api.md#opt-serializers
|
|
73
|
+
base: { pid: process.pid },
|
|
74
|
+
messageKey: 'message',
|
|
75
|
+
errorKey: 'error',
|
|
76
|
+
timestamp: pino.stdTimeFunctions.epochTime,
|
|
77
|
+
// timestamp: process.env.NODE_ENV === 'production' ? pino.stdTimeFunctions.epochTime : pino.stdTimeFunctions.isoTime,
|
|
78
|
+
...getPinoConfig(),
|
|
79
|
+
});
|
|
80
|
+
|
|
81
|
+
return { logger };
|
|
82
|
+
}
|