Winston: EventEmitter ๋ฉ”๋ชจ๋ฆฌ ๋ˆ„์ˆ˜. v.2.0.0

์— ๋งŒ๋“  2015๋…„ 11์›” 04์ผ  ยท  3์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: winstonjs/winston

v2.0.0์„ ์‚ฌ์šฉํ•ด ๋ณด์„ธ์š”. ๊ทธ๋Ÿฌ๋‚˜ ๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.
ํ™•์ธ์„ ์š”์ฒญํ•ฉ๋‹ˆ๋‹ค.

์œˆ์Šคํ„ด v1.0.2๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์˜ค๋ฅ˜ ๋กœ๊ทธ๋ฅผ ๋งŒ๋‚ฌ์Šต๋‹ˆ๋‹ค.
์–ด๋–ค ํ•ด๊ฒฐ์ฑ…์ด ์žˆ์Šต๋‹ˆ๊นŒ?

๋‚ด ์ˆ˜์†ก

transports: [
  new winston.transports.Console({
    level:debug,
    colorize: 'true'
  }),
  new (winston.transports.DailyRotateFile)({
    datePattern: '.yyyy-MM-dd',
    filename: path.join(__dirname, '../logs/chat.error'),
    handleExceptions: true,
    prettyPrint: true,
    level: error,
    timestamp: 'true'
    //maxsize: 500000000 //byte
  })
]

์˜ค๋ฅ˜ ๊ธฐ๋ก

(node) warning: possible EventEmitter memory leak detected. 11 logged listeners added. Use emitter.setMaxListeners() to increase limit.
Trace
    at addListener (events.js:239:17)
    at once (events.js:265:8)
    at Transport.logException (c:\Users\Coupang\WebstormProjects\livechat-agent\node_modules\winston\lib\winston\transports\transport.js:132:8)
    at logAndWait (c:\Users\Coupang\WebstormProjects\livechat-agent\node_modules\winston\lib\winston\logger.js:646:15)
    at c:\Users\Coupang\WebstormProjects\livechat-agent\node_modules\async\lib\async.js:157:13
    at _each (c:\Users\Coupang\WebstormProjects\livechat-agent\node_modules\async\lib\async.js:57:9)
    at Object.async.each (c:\Users\Coupang\WebstormProjects\livechat-agent\node_modules\async\lib\async.js:156:9)
    at Logger._uncaughtException (c:\Users\Coupang\WebstormProjects\livechat-agent\node_modules\winston\lib\winston\logger.js:669:9)
    at emitOne (events.js:77:13)
    at process.emit (events.js:169:7)

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

์ฐธ๊ณ ๋กœ ์ €๋„ ์ด ๋ฌธ์ œ์— ๋ถ€๋”ช์ณค์Šต๋‹ˆ๋‹ค. ์ฒ˜๋ฆฌ๋˜์ง€ ์•Š์€ ์˜ˆ์™ธ ์ˆ˜์‹ ๊ธฐ๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ณ  ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๋ฆฌ์Šค๋„ˆ๋ฅผ ์ œ๊ฑฐํ•˜๊ธฐ ์œ„ํ•ด .exceptions.unhandle() ๋กœ๊ฑฐ์—์„œ ํ˜ธ์ถœํ•ด์•ผ ํ•˜๋Š” ๋ฉ”์„œ๋“œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์ •๋ง๋กœ ๋” ์ž˜ ๋ฌธ์„œํ™”๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ์‰ฝ๊ฒŒ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ์ด ํ˜ธ์ถœ์„ ์ฐพ๊ธฐ ์œ„ํ•ด ์ฝ”๋“œ๋ฅผ ์ƒ…์ƒ…์ด ๋’ค์กŒ๋‹ค. (์‚ฌ์‹ค ๋‚˜๋Š” ์ด ํ˜ธ์ถœ์„ ๊ฐ€๋ฆฌํ‚ค๋Š” ๋” ์ด์ƒ ์‚ฌ์šฉ๋˜์ง€ ์•Š๋Š” ํ˜ธ์ถœ์„ ์ฐพ์•˜์ง€๋งŒ, ๋น„์ถ”์ฒœ ๋กœ๊ทธ ํ…์ŠคํŠธ์˜ ์ฒ ์ž๊ฐ€ ํ‹€๋ ธ๋‹ค).

๋ชจ๋“  3 ๋Œ“๊ธ€

[email protected] ์— ๋Œ€ํ•ด ์‹คํ–‰ ์ค‘์ธ ์ •ํ™•ํ•œ ์ฝ”๋“œ๋ฅผ ์ œ๊ณตํ•˜์‹ญ์‹œ์˜ค. _winston.transports.DailyRotateFile์ด 2.0.0_์—์„œ winston-daily-rotate-file ๋กœ ์ด๋™๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์œ„์˜ ์ฝ”๋“œ ์ƒ˜ํ”Œ์ด ์ •ํ™•ํžˆ ์‹คํ–‰ ์ค‘์ธ ๊ฒƒ์ธ์ง€ ์˜์‹ฌ์Šค๋Ÿฝ์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ ์šฐ๋ฆฌ๊ฐ€ ์ˆ˜์ •ํ•œ 1.x ๋ถ„๊ธฐ์˜ ์•Œ๋ ค์ง„ ๋ฌธ์ œ์˜€์Šต๋‹ˆ๋‹ค. [email protected]์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š”์ง€ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค(์ „์ฒด ์žฌํ˜„ ๊ฐ€๋Šฅํ•œ ์ฝ”๋“œ ์ƒ˜ํ”Œ ํฌํ•จ).

์ด๊ฒƒ์ด ์—ฌ์ „ํžˆ ๋ฐœ์ƒํ•˜๋”๋ผ๋„ ์‹ค์ œ๋กœ๋Š” ํฐ ๋ฌธ์ œ๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค. ๋‹ค์Œ์„ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

logger.setMaxListeners(0);

๊ทธ๋Ÿฌ๋ฉด ํ™•์‹คํžˆ ํ•ด๊ฒฐ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๊ทธ๋ž˜์„œ [email protected] ์™€ ํ•จ๊ป˜ ์ž‘๋™ํ•˜๋„๋ก bithavoc/express-winston ์„ ์—…๋ฐ์ดํŠธํ–ˆ๋Š”๋ฐ ์ด ๋ฌธ์ œ๊ฐ€ ๋‹ค์‹œ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์ตœ๋Œ€๊ฐ’์„ ๋ฌดํ•œ๋Œ€๋กœ ์„ค์ •ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์€์ง€ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค.

์ฐธ๊ณ ๋กœ ์ €๋„ ์ด ๋ฌธ์ œ์— ๋ถ€๋”ช์ณค์Šต๋‹ˆ๋‹ค. ์ฒ˜๋ฆฌ๋˜์ง€ ์•Š์€ ์˜ˆ์™ธ ์ˆ˜์‹ ๊ธฐ๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ณ  ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๋ฆฌ์Šค๋„ˆ๋ฅผ ์ œ๊ฑฐํ•˜๊ธฐ ์œ„ํ•ด .exceptions.unhandle() ๋กœ๊ฑฐ์—์„œ ํ˜ธ์ถœํ•ด์•ผ ํ•˜๋Š” ๋ฉ”์„œ๋“œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์ •๋ง๋กœ ๋” ์ž˜ ๋ฌธ์„œํ™”๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ์‰ฝ๊ฒŒ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ์ด ํ˜ธ์ถœ์„ ์ฐพ๊ธฐ ์œ„ํ•ด ์ฝ”๋“œ๋ฅผ ์ƒ…์ƒ…์ด ๋’ค์กŒ๋‹ค. (์‚ฌ์‹ค ๋‚˜๋Š” ์ด ํ˜ธ์ถœ์„ ๊ฐ€๋ฆฌํ‚ค๋Š” ๋” ์ด์ƒ ์‚ฌ์šฉ๋˜์ง€ ์•Š๋Š” ํ˜ธ์ถœ์„ ์ฐพ์•˜์ง€๋งŒ, ๋น„์ถ”์ฒœ ๋กœ๊ทธ ํ…์ŠคํŠธ์˜ ์ฒ ์ž๊ฐ€ ํ‹€๋ ธ๋‹ค).

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰