logger.info(λ©μμ§, "abc");
μΆλ ₯μ λ€μκ³Ό κ°μ΅λλ€.
{"0":"a","1":"b","2":"c","level":"info","message":"message"}
λ©ν λ¬Έμμ΄μ΄ stringifing μ μ κ°μ²΄μ κ²°ν©λμ΄ μκΈ° λλ¬Έμ΄λΌκ³ μκ°ν©λλ€. μ€ν μΆμ (κ±°λν λ°°μ΄)μμ ν¨μ¬ λ λλΉ λ³΄μ
λλ€. μλ§λ μΆλ ₯μ λ€μκ³Ό κ°μμΌ ν©λλ€.
{"λ©νλ°μ΄ν°":"abc","λ 벨":"μ 보","λ©μμ§":"λ©μμ§"}
μ
λ°μ΄νΈ:
λ¨μ νμμλ μ΄ λ¬Έμ κ° μμ΅λλ€.
μ°μΆ:
μ 보: λ©μμ§ {"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":"a","1":"b","2":"c"}