gpt4 book ai didi

javascript - 如何在 Winston 中将错误对象记录到文件而不是控制台?

转载 作者:行者123 更新时间:2023-12-02 23:15:18 25 4
gpt4 key购买 nike

Winston 中是否有一种简单的方法可以将完整的错误对象记录到 JSON 日志文件中,同时将易于阅读的消息打印到控制台 (err.message)/“Error Error!”在这种情况下?

logger.log({
level: 'error',
message: 'Error Error!',
error: err
})

目前,当我运行此代码时,我收到消息加上完整的错误对象打印到控制台。实际上,我只想将消息打印到控制台,然后在日志文件中提供完整的对象。

我也尝试过:

logger.error('Error Error', { error: err })

配置

import winston from 'winston'
export const logger = winston.createLogger({
level: 'info',
format: winston.format.json(),
transports: [
new winston.transports.File({ filename: './logs/error.log', level: 'error' }),
new winston.transports.File({ filename: './logs/combined.log' })
]
})

if (process.env.NODE_ENV !== 'production') {
logger.add(
new winston.transports.Console({
format: winston.format.combine(winston.format.colorize(), winston.format.simple())
})
)
}

最佳答案

您当前正在使用 winston.format.simple(),它返回格式为 ${info.level}: ${info.message} JSON.stringify({ ...休息})(参见此处https://www.npmjs.com/package/winston#usage)

您需要创建自己的格式来生成您想要的输出:

if (process.env.NODE_ENV !== 'production') {

const myFormat = winston.format.printf(({ level, message, label, timestamp }) => {
return `${timestamp} [${label}] ${level}: ${message}`; // modify as needed
});

logger.add(
new winston.transports.Console({
format: winston.format.combine(
winston.format.colorize(),
myFormat
)
})
);
}

关于javascript - 如何在 Winston 中将错误对象记录到文件而不是控制台?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57189529/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com