-
Notifications
You must be signed in to change notification settings - Fork 3
Open
Description
1、项目说明: midway v3 + koa
1、期望效果:将所有应用日志均输出为JSON格式。
2、实际效果:仅midway-core日志生效。
midway-core.json.log:
{"timestamp":"2024-08-27 11:18:48.159","level":"info","pid":42469,"message":"[midway:redis] client connect success"}
midway-cron.json.log:
2024-08-27 11:18:00.048 ERROR 41827 [DailyAnalyzeJob] 出错了
3、config.default.ts代码实例:
midwayLogger: {
default: {
level: 'warn',
dir: path.join(appInfo.baseDir, './../logs/'),
transports: {
console: false,
error: {
fileLogName: 'common-error.json.log',
},
},
format: (info: LoggerInfo) => {
const { timestamp, level, pid, message } = info;
return JSON.stringify({
timestamp,
level,
pid,
message,
});
},
},
clients: {
coreLogger: {
fileLogName: 'midway-core.json.log',
},
appLogger: {
fileLogName: 'midway-web.json.log',
},
agentLogger: {
fileLogName: 'midway-agent.json.log',
},
cronLogger: {
fileLogName: 'midway-cron.json.log',
},
},
}4、日志输出方式:
import { ILogger } from '@midwayjs/logger';
@Inject()
logger: ILogger;
this.logger.error(err)
5、补充说明:通过手动设置修改Koa上下文日志格式,可以在请求时让conmon-error日志中输出JSON格式,但是在job定时任务里面依然无法输出JSON格式。
koa: {
...
contextLoggerFormat: (info: LoggerInfo) => {
const { timestamp, level, pid, message } = info;
return JSON.stringify({
timestamp,
level,
pid,
message,
});
},
},
Metadata
Metadata
Assignees
Labels
No labels