2013-07-31 26 views
18

Winston oldukça konsola yazdırmak için almaya çalışıyorum avutmaya yapar, bu yüzden bir dosyada bu sıkışmış ve düğümle koştum: Terminal geri tükürmekWinston değil oldukça desenli

var winston = require('winston'); 
winston.cli(); 
winston.data({ 
    a: "test", 
    of: "many", 
    properties: { 
    like: "this" 
    } 
}); 
winston.data('data', { 
    a: "test", 
    of: "many", 
    properties: { 
    like: "this" 
    } 
}); 

aşağıdaki (tam olarak hoş değil) mesajlar:

data:  a=test, of=many, like=this 
data: data a=test, of=many, like=this 

I ("bir CLI aracında kullanılması winston") Winston Readme ilgili talimatlar takip ediyorum. Bir şeyi yanlış mı okuyorum? Bir yerde bir yer mi eksik?

cevap

25

Cevabı buldum (belgeler yanlış). Kurucuyu kullanır ve nakilleri manuel olarak eklerseniz, hem winston hem de bireysel taşımacılık için seçenekleri ayarlayabilirsiniz. Bazı seçeneklerin doğrudan aktarıma eklenmesi gerekirken, bazı seçeneklerin doğrudan winston'a eklenmesi gerekir.

Örn .:

var winston = require('winston'); 
var logger = new (winston.Logger)({ 
    levels: { 
    trace: 0, 
    input: 1, 
    verbose: 2, 
    prompt: 3, 
    debug: 4, 
    info: 5, 
    data: 6, 
    help: 7, 
    warn: 8, 
    error: 9 
    }, 
    colors: { 
    trace: 'magenta', 
    input: 'grey', 
    verbose: 'cyan', 
    prompt: 'grey', 
    debug: 'blue', 
    info: 'green', 
    data: 'grey', 
    help: 'cyan', 
    warn: 'yellow', 
    error: 'red' 
    } 
}); 

logger.add(winston.transports.Console, { 
    level: 'trace', 
    prettyPrint: true, 
    colorize: true, 
    silent: false, 
    timestamp: false 
}); 

logger.add(winston.transports.File, { 
    prettyPrint: false, 
    level: 'info', 
    silent: false, 
    colorize: true, 
    timestamp: true, 
    filename: './nKindler.log', 
    maxsize: 40000, 
    maxFiles: 10, 
    json: false 
}); 
+6

düzeylerine sayılar ters sırada olmamalı renkli oluyor

:

const winston = require("winston"); let date = new Date().toISOString(); const logFormat = winston.format.printf(function(info) { return '${date}-${info.level}: ${JSON.stringify(info.message, null, 4)}\n'; }); const logger = new winston.createLogger({ transports: [ new winston.transports.Console({ level: level, format: winston.format.combine(winston.format.colorize(), logFormat) }) ] }); 

günlükleri biçimi aşağıdaki gibi olacaktır? Örneğin. error = 0 ve trace = 9 https://github.com/winstonjs/winston#logging-levels – Lukas

+0

bu özel biçimlendirici ile çalışmıyor. – theusguy

2

Ben @ partycoder cevabını aldı ve winston ile gelen yalnızca varsayılan günlük düzeylerini kullanmak için aşağı kesilmiş. Ayrıca hataların sırasını tersine çevirmez. 0 = en yüksek öncelik.

winston.addColors({ 
    silly: 'magenta', 
    debug: 'blue', 
    verbose: 'cyan', 
    info: 'green', 
    warn: 'yellow', 
    error: 'red' 
}); 

winston.remove(winston.transports.Console); 
winston.add(winston.transports.Console, { 
    level: process.env.LOG_LEVEL, 
    prettyPrint: true, 
    colorize: true, 
    silent: false, 
    timestamp: false 
}); 
0

[email protected] kullanıyorsanız, kabul edilen yanıt işe yaramaz. Aşağıdakileri deneyin: BTW

2018-03-01T19:49:54.042Z-info: "----- Customer Details ------" 

2018-03-01T19:49:54.042Z-info: [ 
    { 
     "A": 1, 
     "B": 2 
    } 
]