Winston: 버전 3.0.0-rc1 json ν˜•μ‹μ΄ 메타 λ¬Έμžμ—΄μ˜ ν˜•μ‹μ„ μ˜¬λ°”λ₯΄κ²Œ μ§€μ •ν•˜μ§€ μ•ŠμŒ

에 λ§Œλ“  2017λ…„ 10μ›” 23일  Β·  4μ½”λ©˜νŠΈ  Β·  좜처: winstonjs/winston

logger.info(λ©”μ‹œμ§€, "abc");

좜λ ₯은 λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€.
{"0":"a","1":"b","2":"c","level":"info","message":"message"}

메타 λ¬Έμžμ—΄μ΄ stringifing 전에 객체에 κ²°ν•©λ˜μ–΄ 있기 λ•Œλ¬Έμ΄λΌκ³  μƒκ°ν•©λ‹ˆλ‹€. μŠ€νƒ 좔적(κ±°λŒ€ν•œ λ°°μ—΄)μ—μ„œ 훨씬 더 λ‚˜λΉ  λ³΄μž…λ‹ˆλ‹€. μ•„λ§ˆλ„ 좜λ ₯은 λ‹€μŒκ³Ό κ°™μ•„μ•Ό ν•©λ‹ˆλ‹€.
{"메타데이터":"abc","레벨":"정보","λ©”μ‹œμ§€":"λ©”μ‹œμ§€"}

κ°€μž₯ μœ μš©ν•œ λŒ“κΈ€

μ—…λ°μ΄νŠΈ:
λ‹¨μˆœ ν˜•μ‹μ—λ„ 이 λ¬Έμ œκ°€ μžˆμŠ΅λ‹ˆλ‹€.
μ‚°μΆœ:
정보: λ©”μ‹œμ§€ {"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 의 핡심 λ‘œκΉ… APIμ—μ„œ λ³€μˆ˜ arityκ°€ μž‘λ™ν•˜λŠ” 방식을 더 잘 μ„€λͺ…ν•˜κΈ° μœ„ν•΄ 이 티켓을 λ¬Έμ„œ λ²„κ·Έλ‘œ μ—΄μ–΄ λ‘‘λ‹ˆλ‹€.

@ChrisAlderson 참고둜 이것이 μ‚¬μš©μž μ •μ˜ ν˜•μ‹ λ¬Έμ œκ°€ μ•„λ‹Œ μ΄μœ λŠ” λ‹€μŒ μ½”λ“œ 블둝 λ•Œλ¬Έμž…λ‹ˆλ‹€.

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

meta λŠ” 이 경우 λ¬Έμžμ—΄μ΄κΈ° λ•Œλ¬Έμ— – "abc" {"0":"a","1":"b","2":"c"} κ°œμ²΄κ°€ λ©λ‹ˆλ‹€. 이 κ°œμ²΄λŠ” μ•žμœΌλ‘œ info 이 λ©λ‹ˆλ‹€.

이 νŽ˜μ΄μ§€κ°€ 도움이 λ˜μ—ˆλ‚˜μš”?
0 / 5 - 0 λ“±κΈ‰