<p>winston 3: Ρ€Π°ΡΠΊΡ€Π°ΡΠΈΡ‚ΡŒ всС, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΊΡƒ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ</p>

Π‘ΠΎΠ·Π΄Π°Π½Π½Ρ‹ΠΉ Π½Π° 2 июл. 2018  Β·  2ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ  Β·  Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: winstonjs/winston

Π― Π½Π΅ ΠΌΠΎΠ³Ρƒ Π½Π°ΠΉΡ‚ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ€Π°ΡΠΊΡ€Π°ΡˆΠΈΠ²Π°Π½ΠΈΡ всСй строки ΠΆΡƒΡ€Π½Π°Π»Π°, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€,

winston.createLogger({
  level: 'debug',
  transports: [
    new winston.transports.Console({
      format: winston.format.combine(
        winston.format.timestamp(),
        winston.format.colorize({ all: true }),
        winston.format.align(),
        winston.format.printf((info) => {
          const {
            timestamp, level, message, ...args
          } = info;

          // const ts = timestamp.slice(0, 19).replace('T', ' ');
          return `${timestamp} ${level}: ${message} ${Object.keys(args).length ? JSON.stringify(args, null, 2) : ''}`;
        }),
      ),
    }),
  ],
});

Π― Π±Ρ‹ Ρ…ΠΎΡ‚Π΅Π», Ρ‡Ρ‚ΠΎΠ±Ρ‹ всС Π²ΠΎ всСй Π»ΠΈΠ½Π΅ΠΉΠΊΠ΅ Π±Ρ‹Π»ΠΎ Ρ€Π°ΡΠΊΡ€Π°ΡˆΠ΅Π½ΠΎ. Π’ Winston 2 ΠΎΠ½ Ρ€Π°Π±ΠΎΡ‚Π°Π» Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎ, Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ Π½Π΅ Ρ€Π°ΡΠΊΡ€Π°ΡˆΠΈΠ²Π°Π» всю строку.

Как Ρ€Π°ΡΠΊΡ€Π°ΡΠΈΡ‚ΡŒ всю строку Π²Ρ‹Π²ΠΎΠ΄Π° ΠΈ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΌΠ΅Ρ‚ΠΊΡƒ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π² ΠΏΠ΅Ρ€Π²ΡƒΡŽ запись строки ΠΆΡƒΡ€Π½Π°Π»Π°, Π° Π½Π΅ ΠΊΠ°ΠΊ Ρ‡Π°ΡΡ‚ΡŒ Ρ‚Π΅Π»Π° сообщСния.

Π‘Π°ΠΌΡ‹ΠΉ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

быстрый ΠΎΠ±Ρ…ΠΎΠ΄Π½ΠΎΠΉ ΠΏΡƒΡ‚ΡŒ для Ρ€Π°ΡΠΊΡ€Π°ΡˆΠΈΠ²Π°Π½ΠΈΡ всСй строки ΠΆΡƒΡ€Π½Π°Π»Π°:

const colorizer = winston.format.colorize();

const logger = winston.createLogger({
  level: 'debug',
  format: combine(
    winston.format.timestamp(),
    winston.format.simple(),
    winston.format.printf(msg => 
      colorizer.colorize(msg.level, `${msg.timestamp} - ${msg.level}: ${msg.message}`)
    )
  ),
  transports: [
    new transports.Console(),
  ]

});

ВсС 2 ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ colorize Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°ΡΠΊΡ€Π°ΡˆΠΈΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΈΠ»ΠΈ свойства сообщСния: https://github.com/winstonjs/logform/blob/master/colorize.js#L92 , Π΄Π°ΠΆΠ΅ Ссли opts.all установлСн. Π― Π΄ΡƒΠΌΠ°ΡŽ, Ρ‡Ρ‚ΠΎ это Π΄Π΅Π»Π°Π΅Ρ‚ opts.all Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ бСсполСзным ΠΊΠ°ΠΊ Π΅ΡΡ‚ΡŒ; Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ просто ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ opts.level ΠΈ opts.message, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ. ВмСсто этого opts.all ΠΌΠΎΠ³ Π±Ρ‹, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ€Π°ΡΠΊΡ€Π°ΡΠΈΡ‚ΡŒ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΊΠ»ΡŽΡ‡ Π² ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΊΡƒ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ (Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ врСмСнная ΠΌΠ΅Ρ‚ΠΊΠ° добавляСтся Π² качСствС ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΊΠ»ΡŽΡ‡Π° Π² ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ, Π° Π½Π΅ добавляСтся ΠΊ info.message, поэтому ΠΎΠ½Π° Π½Π΅ ΠΎΠΊΡ€Π°ΡˆΠΈΠ²Π°Π΅Ρ‚ΡΡ). Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ PR Π² Π»ΠΎΠ³-Ρ„ΠΎΡ€ΠΌΠ΅, которая Ρ€Π°ΡΠΊΡ€Π°ΡˆΠΈΠ²Π°Π΅Ρ‚ всС ΠΊΠ»ΡŽΡ‡ΠΈ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ, ΠΊΠΎΠ³Π΄Π° opts.all ΠΈΠΌΠ΅Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ true, я Π±Ρ‹Π» Π±Ρ‹ Ρ€Π°Π΄ Ρ€Π°ΡΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ это Ρ‚Π°ΠΌ. Бпасибо!

быстрый ΠΎΠ±Ρ…ΠΎΠ΄Π½ΠΎΠΉ ΠΏΡƒΡ‚ΡŒ для Ρ€Π°ΡΠΊΡ€Π°ΡˆΠΈΠ²Π°Π½ΠΈΡ всСй строки ΠΆΡƒΡ€Π½Π°Π»Π°:

const colorizer = winston.format.colorize();

const logger = winston.createLogger({
  level: 'debug',
  format: combine(
    winston.format.timestamp(),
    winston.format.simple(),
    winston.format.printf(msg => 
      colorizer.colorize(msg.level, `${msg.timestamp} - ${msg.level}: ${msg.message}`)
    )
  ),
  transports: [
    new transports.Console(),
  ]

});
Π‘Ρ‹Π»Π° Π»ΠΈ эта страница ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ?
0 / 5 - 0 Ρ€Π΅ΠΉΡ‚ΠΈΠ½Π³ΠΈ