Javascript Winston Logger, как записывать полные объекты в консоль и файл? - PullRequest
0 голосов
/ 18 июня 2019

Я хотел бы разрешить любые объекты, которые я записываю в консоль или файл, и распечатать их соответствующие ключи и значения в консоли / файле.

Сейчас у меня есть вывод:

result1:[object Object],[object Object]
18.06.2019 14:57:49 info: result1: [object Object]

Я хочу упорядочить эти объекты ... JSON.stringify (объект) не помог ...

вот мой код logger.js:

'use strict';
const { createLogger, format, transports } = require('winston');
var appRoot = require('app-root-path');

var options = {
      file: {
        level: 'info',
        filename: `${appRoot}/logs/app.log`,
        handleExceptions: true,
        json: true,
        maxsize: 5242880, // 5MB
        maxFiles: 5,
        colorize: false,
      },
      console: {
        level: 'info',
        handleExceptions: true,
        prettyPrint: this.prettyPrint,
        json: true,
        colorize: true,
      },
      prettyPrint: function( object ){
        return JSON.stringify(object);
      } 
    };

const logger = createLogger({
  level: 'info',
  format: format.combine(
    format.colorize(),
    format.timestamp({
      format: 'DD.MM.YYYY HH:mm:ss'
    }),
    format.printf(info => `${info.timestamp} ${info.level}: ${info.message}`)
  ),
  transports: [new transports.Console(), new transports.File(options.file)]
});

module.exports = {
    logger
}

и, кроме того,... функция prettyPrint () почему-то не показывает никакого эффекта, или я просто не знаю, как использовать эту функцию, или она всегда выполняется автоматически (или только с опцией?)

...