man*_*929 2 logging node.js winston morgan
我在输出中得到空行,如下所示。我在这里使用morgan和winston组合到一个文件中,如何避免这些空行?
//logger
const logger = new winston.Logger({
transports: [
new winston.transports.File({
filename: './logs/dca_ui.log',
handleExceptions: true,
json: false,
maxsize: MAX_SIZE_LOG,
maxFiles: MAX_LOG_FILES,
colorize: false,
}),
],
exitOnError: false,
});
//writestream
const stream = {
write: (message, encoding) => {
logger.info(message);
},
};
app.use((morgan(':date :status :method :url :response-time', { stream: stream })));
Run Code Online (Sandbox Code Playgroud)
输出:
5 2016-11-15T04:21:18.981Z-信息:Tue,15 Nov 2016 04:21:18 GMT 200 GET /index.js 4.539
6
7 2016-11-15T04:21:19.786Z-信息:Tue,15 2016年11月04:21:19 GMT 200 GET / urest / v1 / template?start = 0&count = 20&sort = templateName:asc 106.379
8
9 2016-11-15T04:21:22.835Z-信息:2016年11月15日星期二04:21 :22 GMT 200 GET / urest / v1 / template / 7b4ca205-7b75-459c-81f1-a61fc8b6be69?view = condense 122.692
morgan在流末尾添加\ n-新行。如果您记录以下内容,则可以看到它:
logger.info(JSON.stringify(message));
因此,要删除它,您将需要以下内容:
//writestream
const stream = {
write: (message, encoding) => {
logger.info(message.substring(0,message.lastIndexOf('\n')));
},
};
Run Code Online (Sandbox Code Playgroud)
这是关于它的讨论:https : //github.com/expressjs/morgan/issues/70