我使用温斯顿和摩根创建了一个记录器中间件,如下所示:
const format = winston.format.combine(
winston.format.timestamp({ format: 'YYYY-MM-DD HH:mm:ss:ms' }),
winston.format.printf(
(info) => `${info.timestamp} ${info.level}: ${info.message}`,
),
)
const transports = [
new winston.transports.Console(),
new winston.transports.File({
filename: 'logs/error.log',
level: 'error',
}),
new winston.transports.File({ filename: 'logs/all.log' }),
]
const logger = winston.createLogger({
format,
level: "info",
transports
})
const stream = {
write: (message) => logger.log(message),
};
const morganMiddleware = morgan(
":remote-addr :method :url :status :res[content-length] - :response-time ms",
{ stream }
);
app.use(morganMiddleware);
但是,当我开始运行并收到第一个日志时,温斯顿给我一个错误:
level[LEVEL] = level.level;
^
TypeError: Cannot create property 'Symbol(level)' on string '::1 GET /api/amr/applications?order=ASC&sortBy=application.lastIncidentAt 304 - - 380.459 ms
有人能告诉我我的温斯顿/摩根配置有什么问题吗?
谢谢你的帮助!
发布于 2022-09-21 20:07:54
温斯顿·洛格希望有两个论点。所以,不是这样的:
const stream = {
write: (message) => logger.log(message),
};
这样做:
const stream = {
write: (message) => logger.log('info', message),
};
https://stackoverflow.com/questions/73806309
复制相似问题