Skip to content
This repository was archived by the owner on Apr 15, 2026. It is now read-only.

Commit c3324ab

Browse files
committed
feat(core): logger support time log
1 parent c845ed3 commit c3324ab

1 file changed

Lines changed: 44 additions & 27 deletions

File tree

  • packages/framework-core/src/logger

packages/framework-core/src/logger/index.ts

Lines changed: 44 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,11 @@ export { Logger } from 'winston';
2424
let logger: winston.Logger;
2525

2626
const logFilePath = path.join(LOG_PATH, `${formatDateTime(new Date())}.log`);
27+
const startTime = new Date();
2728

2829
export default function getLogger(level?: string) {
30+
const isCI = !!process.env.CLOUDBASE_CIID;
31+
2932
if (!logger) {
3033
// 初始化 logger
3134
try {
@@ -34,36 +37,50 @@ export default function getLogger(level?: string) {
3437

3538
logger = winston.createLogger({
3639
level: level || 'info',
37-
transports: [
38-
new winston.transports.Console({
39-
format: format.combine(
40-
format.cli(),
41-
format.printf((info) => {
40+
transports: isCI
41+
? new winston.transports.Console({
42+
format: format.printf((info) => {
4243
const splat = info[Symbol.for('splat') as any];
4344
return (
44-
`${chalk.bold(
45-
gradient(['cyan', 'rgb(0, 111, 150)', 'rgb(0, 246,136)'])(
46-
' CloudBase Framework '
47-
)
48-
)} ${info.level} ${info.message}` +
49-
(splat ? ` ${splat.map(inspect).join(' ')} ` : '')
45+
`${new Date()} ${(
46+
(new Date().valueOf() - startTime.valueOf()) /
47+
1000
48+
).toFixed(1)} CloudBase Framework::${info.level} ${
49+
info.message
50+
}` + (splat ? ` ${splat.map(inspect).join(' ')} ` : '')
5051
);
51-
})
52-
),
53-
}),
54-
new winston.transports.File({
55-
filename: logFilePath,
56-
level: 'debug',
57-
format: format.printf((info) => {
58-
const splat = info[Symbol.for('splat') as any];
59-
return (
60-
`${new Date()} CloudBase Framework::${info.level} ${
61-
info.message
62-
}` + (splat ? ` ${splat.map(inspect).join(' ')} ` : '')
63-
);
64-
}),
65-
}),
66-
],
52+
}),
53+
})
54+
: [
55+
new winston.transports.Console({
56+
format: format.combine(
57+
format.cli(),
58+
format.printf((info) => {
59+
const splat = info[Symbol.for('splat') as any];
60+
return (
61+
`${chalk.bold(
62+
gradient(['cyan', 'rgb(0, 111, 150)', 'rgb(0, 246,136)'])(
63+
' CloudBase Framework '
64+
)
65+
)} ${info.level} ${info.message}` +
66+
(splat ? ` ${splat.map(inspect).join(' ')} ` : '')
67+
);
68+
})
69+
),
70+
}),
71+
new winston.transports.File({
72+
filename: logFilePath,
73+
level: 'debug',
74+
format: format.printf((info) => {
75+
const splat = info[Symbol.for('splat') as any];
76+
return (
77+
`${new Date()} CloudBase Framework::${info.level} ${
78+
info.message
79+
}` + (splat ? ` ${splat.map(inspect).join(' ')} ` : '')
80+
);
81+
}),
82+
}),
83+
],
6784
});
6885
}
6986

0 commit comments

Comments
 (0)