Javascript Winston logger如何将完整的对象记录到控制台和文件?

时间:2019-06-18 13:06:21

标签: javascript object logging winston stringify

我想解析我登录到控制台或文件的任何对象,并将它们各自的键和值打印到控制台/文件。

目前,我的输出为:

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

我想对那些对象进行字符串化处理... JSON.stringify(object)并没有帮助...

这是我的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()某种程度上没有显示任何效果,或者我只是不知道如何使用该函数,或者它总是总是自动执行(或仅通过一个选项执行)? / p>

0 个答案:

没有答案