2017-10-10 62 views
0

这不会以彩色方式打印到控制台。一切都是白色的。我一直在Google上搜索几个小时。我正在运行Ubuntu 17.Winston将不会登录颜色

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

我没有收到任何错误消息或任何内容。它只是白色的。

回答

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的回购协议完全按照我刚才的做法完成。它应该是一个超链接。我可能会做一个公关。回购是here

我不得不去他们的例子目录找到这个例子。

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