2016-11-15 8 views
0

Я получаю пустые строки на выходе, как показано ниже Я использую morgan и winston, объединенные здесь для входа в файл как избежать этих пустых строк?Как удалить пустые строки, которые сгенерированы в файле журнала из журнала morgan?

//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 }))); 

Выход:

5 2016-11-15T04: 21: 18.981Z - информация: Вт, 15 ноября 2016 4:21:18 GMT 200 GET /index.js 4,539
7 2016-11-15T04: 21: 19.786Z - info: Tue, 15 Nov 2016 04:21:19 GMT 200 GET/urest/v1/template? Start = 0 & count = 20 & sort = templateName: asc 106.379
9 2016-11-15T04: 21: 22.835Z - информация: Вт, 15 Ноя 2016 04:21 : 22 GMT 200 GET/urest/v1/шаблон/7b4ca205-7b75-459c-81f1-a61fc8b6be69 вид = конденсироваться 122,692

ответ

1

морган добавляет \ п - новой строки в конце потока. Вы можете увидеть, если вы войдете это: logger.info(JSON.stringify(message));

Так, чтобы удалить его вам нужно что-то вроде этого:

//writestream 
const stream = { 
    write: (message, encoding) => { 
     logger.info(message.substring(0,message.lastIndexOf('\n'))); 
    }, 
}; 

здесь является обсуждение об этом: https://github.com/expressjs/morgan/issues/70