Как удалить пустые строки, которые генерируются в файле журнала из системы регистрации 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 г. 04:21:18 GMT 200 GET /index.js 4.539
6
7 2016-11-15T04: 21: 19.786Z - информация: вторник, 15 ноября 2016 г. 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 - информация: вторник, 15 ноября 2016 г. 04:21:22 GMT 200 GET / urest/v1/template / 7b4ca205-7b75-459c-81f1-a61fc8b6be69? View= конденсат 122.692

2 ответа

Морган добавляет \n - новую строку в конец потока. Вы можете увидеть это, если войдете в систему: 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

У меня есть обновление по этому вопросу, потому что я также столкнулся с этим

      const stream = {
    write: (message) => {
        logger.http(message.trim());
    },
};
Другие вопросы по тегам