winstonjs/winston

Colorize doesn't work on transports.Console

Open

#1,095 opened on Oct 10, 2017

View on GitHub
 (13 comments) (5 reactions) (0 assignees)JavaScript (1,789 forks)batch import
DocsGood First IssueHelp Wanted

Repository metrics

Stars
 (21,967 stars)
PR merge metrics
 (Avg merge 68d 4h) (9 merged PRs in 30d)

Description

I created a shared logger successfully, but it prints all white, even though I've set colorize to true. And as a test, My Label successfully prints out in red.

// Logging with Winston
const { red } = require('colors')
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 } = format
const tsFormat = () => (new Date()).toLocaleTimeString()
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: red('My Label') }),
    timestamp(),
    myFormat
  ),
  transports: [
    new transports.Console({ level: config.logLevel, humanReadableUnhandledException: true, 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

Contributor guide