Aklımda Kalası Kelimeler

* давайте работать вместе
* Zarf ve Mazruf, Zerafet(xHoyratlık) ile aynı kökten(za-ra-fe) gelir
* Bedesten
* Suç subuta ermiştir - Suç sabit olmuştur
winstonjs etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
winstonjs etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

19 Şubat 2015 Perşembe

Node.js loglarınızı winston-redis ile Redis db de tutma

Kod içinde winston nasıl log seviyesini belirliyor ve redis tarafında nasıl tutuyoru görebilirsiniz:
var winston = require('winston'),
    winstonRedis = require('winston-redis').Redis;

// console'da sadece hepsi tutuluyor olacak çünkü info log seviyesinden sonra diğer tüm log seviyeleri sıralanmış
var transportConsole = new winston.transports.Console({ json: false, timestamp: true, prettyPrint:true, colorize: true, level:'info' }),
// File'da sadece i ve db tutuluyor olacak çünkü i den sonra db log seviyesi sıralanmış
    transportFileDebug = new winston.transports.File({ filename: __dirname + '/debug.log', json: true }),
    transportFileException = new winston.transports.File({ filename: __dirname + '/exceptions.log', json: false }),
    // rediste sadece db tutuluyor olacak çünkü db den sonra bir log seviyesi yok
    transportRedis = new (winstonRedis)({host: '127.0.0.1', port: 6379, level:'db'});


var logger = new (winston.Logger)({
    levels: {
        info: 0,
        warn: 1,
        error: 2,
        verbose: 3,
        i: 4,
        db: 5
    },
    transports: [
        transportConsole,
        transportFileDebug,
        transportRedis
    ],
    exceptionHandlers: [
        transportConsole,
        transportFileException
    ],
    exitOnError: false
});

winston.addColors({
    info: 'green',
    warn: 'cyan',
    error: 'red',
    verbose: 'blue',
    i: 'gray',
    db: 'magenta'
});

logger.i('iiiii foobar level-ed message');
logger.db('dbbbbb foobar level-ed message');
logger.info('infoo foobar level-ed message');
logger.warn('warnnnn foobar level-ed message');
logger.error('errroor foobar level-ed message');

module.exports = logger;

Node.js kodunuzu winston.js ile konsol çıktılarınızda renklendirme

colorize: true ile renklendirme oluyor. Ama renklendirmede kullanılacak renk sayısı çok değil Marak/color.js:
  • black
  • red
  • green
  • yellow
  • blue
  • magenta
  • cyan
  • white
  • gray
  • grey

var winston = require('winston');

var transportConsole = new winston.transports.Console({ json: false, timestamp: true, prettyPrint:true, colorize: true });

var logger = new (winston.Logger)({
    levels: {
        info: 0,
        warn: 1,
        error: 2,
        verbose: 3,
        i: 4,
        db: 5
    },
    transports: [ transportConsole ]
});

winston.addColors({
    info: 'green',
    warn: 'cyan',
    error: 'red',
    verbose: 'blue',
    i: 'gray',
    db: 'magenta'
});

logger.i('iiiii foobar level-ed message');
logger.db('dbbbbb foobar level-ed message');
logger.info('infoo foobar level-ed message');
logger.warn('warnnnn foobar level-ed message');
logger.error('errroor foobar level-ed message');

module.exports = logger;

Ekran görüntüsü: