我在节点应用中使用winston logger,我想将自定义消息记录到日志文件中。
var logger = new winston.Logger({
transports: [
new winston.transports.File({
level: 'info',
filename: '/tmp/test.log',
handleExceptions: true,
json: true,
maxsize: 20971520 //20MB
})
],
exitOnError: false
});
我只需要在日志中记录消息,我不需要在日志文件中记录级别和时间戳。当前记录的样本如下。
{"level":"info","message":"sample entry to log","timestamp":"2015-12-11T09:43:50.507Z"}
我的目的是在日志文件中输入
sample entry to log
如何实现这一目标?
答案 0 :(得分:0)
答案 1 :(得分:0)
在Winston 2.x上 如果只想打印邮件,则可以通过设置以下内容来实现:
json: false,
timestamp: false,
showLevel: false
完整记录器示例:
let logger = new Logger({
transports: [
new (transports.File)({
name: 'info-file',
filename: 'filelog-info.log',
json: false,
timestamp: false,
showLevel: false
})
],
exitOnError: false
});
logger.log('info', 'eat my shorts');
进入filelog-info.log:eat my shorts
仅供参考:此处的过滤器和重写器无济于事
答案 2 :(得分:0)
如果有人像我一样找到了这个问题,希望仅发送express-winston
日志消息(以我为例,发送到控制台)
这是我所做的:
const winston = require('winston');
const expressWinston = require('express-winston');
const { MESSAGE } = require('triple-beam');
expressWinston.logger({
transports: [
new winston.transports.Console({
format: simpleformatter()
})
]
});
const simpleformatter = winston.format(info => {
info[MESSAGE] = info.message;
return info;
});