Уинстон не войдет в цвет

Это не печатает на консоль в цвете. Все белое. Я гуглил часами. Я использую Ubuntu 17.

// Logging with Winston
const os = require('os')
const fs = require('fs')
const path = require('path')
const config = require('../data/config/config')
const winston = require('winston')
const { createLogger, format, transports } = winston
const tsFormat = () => (new Date()).toLocaleTimeString()

const logDir = path.resolve(os.homedir(), '.test-logs')

if (!fs.existsSync(logDir)) {
  fs.mkdirSync(logDir)
}

const logger = createLogger({
  format: format.combine(
    format.splat(),
    format.simple()
  ),
  transports: [
    new transports.Console({ timestamp: tsFormat, level: config.logLevel, colorize: true }),
    new transports.File({ filename: path.resolve(logDir, 'info.log'), level: 'info' }),
    new transports.File({ filename: path.resolve(logDir, 'error.log'), level: 'error' })
  ]
})

module.exports = logger

Я не получаю никаких сообщений об ошибках или что-то еще. Это просто белый.


person Euroclydon37    schedule 10.10.2017    source источник


Ответы (1)


Редактировать: после ответа на мой собственный вопрос мне сказали в беседе на их github страницу, на которой вы можете передавать форматы самим транспортам.

const logger = createLogger({
  transports: [
    new transports.Console({ level: config.logLevel, format: customFormat, colorize: true, handleExceptions: true, humanReadableUnhandledException: true }),
    new transports.File({ filename: path.resolve(logDir, 'server.log'), level: 'silly' }),
    new transports.File({ filename: path.resolve(logDir, 'error.log'), level: 'error', handleExceptions: true })
  ]
})

Оригинальный ответ

Вы должны добавить раскраску в формат при создании экземпляра регистратора. В их документации не было такого примера. Их ссылка на репозиторий под названием logForm сделана точно так же, как я только что сделал. Вместо этого должна быть гиперссылка. Я мог бы сделать пиар. Репозиторий находится здесь

Мне пришлось зайти в каталог их примеров, чтобы найти этот пример.

// Logging with Winston
const os = require('os')
const fs = require('fs')
const path = require('path')
const config = require('../data/config/config')
const winston = require('winston')
const { createLogger, format, transports } = winston
const { combine, timestamp, label, printf, colorize } = format
const myFormat = printf(info => {
  return `${info.timestamp} [${info.label}] ${info.level}: ${info.message}`
})

const logDir = path.resolve(os.homedir(), '.curator-server')

if (!fs.existsSync(logDir)) {
  fs.mkdirSync(logDir)
}

const logger = createLogger({
  format: combine(
    label({ label: 'Curator Server' }),
    colorize(), // Here is where the color happens
    timestamp(),
    myFormat
  ),
  transports: [
    new transports.Console({ level: config.logLevel, colorize: true, handleExceptions: true, humanReadableUnhandledException: true }),
    new transports.File({ filename: path.resolve(logDir, 'info.log'), level: 'info' }),
    new transports.File({ filename: path.resolve(logDir, 'error.log'), level: 'error', handleExceptions: true })
  ]
})

module.exports = logger
person Euroclydon37    schedule 11.10.2017