Winston: рд╕рдВрд╕реНрдХрд░рдг 3.0.0-рдЖрд░рд╕реА1 рдЬреЗрд╕рди рдкреНрд░рд╛рд░реВрдк рдореЗрдЯрд╛ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ рдареАрдХ рд╕реЗ рд╕реНрд╡рд░реВрдкрд┐рдд рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 23 рдЕрдХреНрддреВре░ 2017  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: winstonjs/winston

logger.info (рд╕рдВрджреЗрд╢, "рдПрдмреАрд╕реА");

рдЖрдЙрдЯрдкреБрдЯ рд╣реИ:
{"0": "рдП", "1": "рдмреА", "2": "рд╕реА", "рд╕реНрддрд░": "рдЬрд╛рдирдХрд╛рд░реА", "рд╕рдВрджреЗрд╢": "рд╕рдВрджреЗрд╢"}

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдРрд╕рд╛ рдЗрд╕рд▓рд┐рдП рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдореЗрдЯрд╛ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдпрд╣ рд╕реНрдЯреИрдХ рдЯреНрд░реЗрд╕ (рд╡рд┐рд╢рд╛рд▓ рд╕рд░рдгреА) рдХреЗ рд╕рд╛рде рдмрд╣реБрдд рдЦрд░рд╛рдм рджрд┐рдЦрддрд╛ рд╣реИред рд╢рд╛рдпрдж рдРрд╕рд╛ рдХреЗрд╕ рдЖрдЙрдЯрдкреБрдЯ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП:
{"рдореЗрдЯрд╛рдбреЗрдЯрд╛": "рдПрдмреАрд╕реА", "рд╕реНрддрд░": "рдЬрд╛рдирдХрд╛рд░реА", "рд╕рдВрджреЗрд╢": "рд╕рдВрджреЗрд╢"}

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВ:
рд╕рд░рд▓ рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рднреА рдпрд╣ рд╕рдорд╕реНрдпрд╛ рд╣реИ:
рдЖрдЙрдЯрдкреБрдЯ:
рдЬрд╛рдирдХрд╛рд░реА: рд╕рдВрджреЗрд╢ {"0":"a",,"1":"b",,"2":"c"}

рд╕рднреА 4 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВ:
рд╕рд░рд▓ рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рднреА рдпрд╣ рд╕рдорд╕реНрдпрд╛ рд╣реИ:
рдЖрдЙрдЯрдкреБрдЯ:
рдЬрд╛рдирдХрд╛рд░реА: рд╕рдВрджреЗрд╢ {"0":"a",,"1":"b",,"2":"c"}

рдЗрд╕реЗ [email protected] рдореЗрдВ рдХрд╕реНрдЯрдо рдкреНрд░рд╛рд░реВрдкреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреВрд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдХреГрдкрдпрд╛ рдЙрдиреНрдирдпрди рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред

рдпрд╣ winston рдореЗрдВ рд╕рдорд░реНрдерд┐рдд API рдХреЙрд▓ рдирд╣реАрдВ рд╣реИ - рдЖрдк рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ рдореЗрдЯрд╛рдбреЗрдЯрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рджрд╛рди рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдСрдмреНрдЬреЗрдХреНрдЯ рдирд╣реАрдВред рдпрд╣рд╛рдВ рдХреБрдЫ рдорд╛рдиреНрдп API рдХреЙрд▓ рд╣реИрдВ:

// winston<strong i="7">@2</strong> API:
logger.log('info', 'Hello world', { custom: true });
logger.log('info', new Error('Yo, it\'s on fire'));
logger.log('info', '%s %d%%', 'A string', 50, { thisIsMeta: true });

// winston<strong i="8">@3</strong> API тАУ┬аa single JSON literal:
logger.log({ level: 'info', message: 'Hello world', custom: true });
logger.log({ level: 'info', message: new Error('Yo, it\'s on fire') });
logger.log({
  level: 'info',
  message: '%s %d%%',
  splat: ['A string', 50],
  meta: { thisIsMeta: true }
});

рдпрджрд┐ рдЖрдк рдРрд╕рд╛ рдЖрдЙрдЯрдкреБрдЯ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдЬреЛ рдЗрд╕ рд╕реЗ рдорд┐рд▓рддрд╛ рдЬреБрд▓рддрд╛ рд╣реЛ:

{"metadata":"abc","level":"info","message":"message"}

рдлрд┐рд░ рдпрд╣ рдХрд░реЗрдВ:

logger.info('message', { metadata: 'abc' });

... рдЗрд╕ рдЯрд┐рдХрдЯ рдХреЛ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдмрдЧ рдХреЗ рд░реВрдк рдореЗрдВ рдЦреБрд▓рд╛ рдЫреЛрдбрд╝рдиреЗ рдЬрд╛ рд░рд╣рд╛ рд╣реИ рддрд╛рдХрд┐ рдпрд╣ рдмреЗрд╣рддрд░ рдврдВрдЧ рд╕реЗ рд╕рдордЭрд╛рдпрд╛ рдЬрд╛ рд╕рдХреЗ рдХрд┐ winston рдХреЗ рдХреЛрд░ рд▓реЙрдЧрд┐рдВрдЧ рдПрдкреАрдЖрдИ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрдиреАрдп arity рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

@ChrisAlderson FYI рдХрд░реЗрдВ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдПрдХ рдХрд╕реНрдЯрдо рдкреНрд░рд╛рд░реВрдк рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдХреЛрдб рдХреЗ

const info = Object.assign({}, meta, {
  [LEVEL]: level,
  level,
  message: msg
});

рдЪреВрдВрдХрд┐ meta рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╣реИ - "abc" рдпрд╣ рд╡рд╕реНрддреБ {"0":"a","1":"b","2":"c"} рдЬрд╛рддреА рд╣реИ рдЬреЛ рдХрд┐ рдЖрдЧреЗ рдмрдврд╝рдиреЗ рд╡рд╛рд▓реЗ info рдХрд╛ рдЖрдзрд╛рд░ рд╣реИред

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

jlank picture jlank  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

KingRial picture KingRial  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

pocesar picture pocesar  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

Infinitay picture Infinitay  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

sinai-doron picture sinai-doron  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ