[英]How do you log an error object to file rather than console in Winston?
Winston中有没有一种简单的方法可以将完整的错误对象记录到JSON日志文件中,但是会在控制台上打印一条易于阅读的消息(err.message)/“错误错误!” 在这种情况下?
logger.log({
level: 'error',
message: 'Error Error!',
error: err
})
当前,当我运行此代码时,我收到消息以及打印到控制台的完整错误对象。 实际上,我只希望将消息打印到控制台,然后将完整对象显示在日志文件中。
我也尝试过:
logger.error('错误错误',{错误:错误})
配置
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({ ...rest })
的格式返回日志${info.level}: ${info.message} JSON.stringify({ ...rest })
(请参见此处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
)
})
);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.