2017-10-10 4 views
0

Cela ne s'imprime pas sur la console en couleur. Tout est blanc. J'ai été googling pendant des heures. Je cours Ubuntu 17.Winston ne se connecte pas en couleur

// 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 

Je ne reçois aucun message d'erreur ou quoi que ce soit. C'est juste blanc.

Répondre

1

Modifier: Après avoir répondu à ma propre question, on m'a dit lors d'une conversation sur leur page github que vous pouvez réellement passer eux-mêmes formats pour les transports.

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 }) 
    ] 
}) 

Réponse originale

Vous devez ajouter coloriser au format lors de l'instanciation l'enregistreur. Il n'y avait aucun exemple de ceci dans leur documentation. Leur référence à un repo appelé logForm est faite exactement comme je viens de le faire. Ce devrait être un hyperlien à la place. Je pourrais faire un PR. Le repo est here

Je devais aller à leur répertoire d'exemples pour trouver cet exemple.

// 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