Winston: рдХрдВрд╕реЛрд▓ рдЯреНрд░рд╛рдВрд╕рдкреЛрд░реНрдЯ рдбрд┐рдмрдЧ рдХрдВрд╕реЛрд▓ рдкрд░ рдирд╣реАрдВ рд▓рд┐рдЦрддрд╛ рд╣реИ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 6 рджрд┐рд╕ре░ 2018  ┬╖  9рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: winstonjs/winston

рдХреГрдкрдпрд╛ рд╣рдореЗрдВ рдЕрдкрдиреЗ рдкрд░реНрдпрд╛рд╡рд░рдг рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрддрд╛рдПрдВ:

  • _ winston рд╕рдВрд╕реНрдХрд░рдг?_

    • [ ] winston@2

    • [рдПрдХреНрд╕] winston@3

  • _ node -v рдЖрдЙрдЯрдкреБрдЯ: v10.1.0
  • _рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо?_ рд╡рд┐рдВрдбреЛрдЬ
  • _рднрд╛рд╖рд╛?_ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ

рд╕рдорд╕реНрдпрд╛ рдХреНрдпрд╛ рд╣реИ?

рдЬрдм рдореИрдВ рдмрд┐рд▓реНрдЯ рдЗрди рдХрдВрд╕реЛрд▓ рдЯреНрд░рд╛рдВрд╕рдкреЛрд░реНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ, рддреЛ рдпрд╣ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдЪрд▓рдиреЗ рдкрд░ рдХрдВрд╕реЛрд▓ рдХреЛ рд▓рд┐рдЦреЗрдЧрд╛ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП node ./dist/index.js ) рд▓реЗрдХрд┐рди рдЬрдм рдореИрдВ рд╡рд┐рдЬреБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ рдХреЛрдб рд╕реЗ рдбреАрдмрдЧ рдХрд░рддрд╛ рд╣реВрдВ рддреЛ рдбреАрдмрдЧ рдХрдВрд╕реЛрд▓ рдкрд░ рдирд╣реАрдВред рдХрдВрд╕реЛрд▓.рд▓реЙрдЧ ()/рдЪреЗрддрд╛рд╡рдиреА ()/рддреНрд░реБрдЯрд┐ () рдХреЗ рд▓рд┐рдП рдорд╛рдирдХ рдХреЙрд▓ рдбрд┐рдмрдЧ рдХрдВрд╕реЛрд▓ рдкрд░ рд▓рд┐рдЦрддреЗ рд╣реИрдВред

рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдЖрдк рдХреНрдпрд╛ рд╣реЛрдиреЗ рдХреА рдЙрдореНрдореАрдж рдХрд░рддреЗ рд╣реИрдВ?

рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рд╕рднреА рд╕рдВрджреЗрд╢ рдбрд┐рдмрдЧ рдХрдВрд╕реЛрд▓ рдкрд░ рд▓рд┐рдЦреЗ рдЬрд╛рдПрдВрдЧреЗ рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдЪрд▓рдиреЗ рдкрд░ рдорд╛рдирдХ рдХрдВрд╕реЛрд▓ рдкрд░ рд╣реЛрдВрдЧреЗред

рдЕрдиреНрдп рд╕реВрдЪрдирд╛

рд╕рдорд╕реНрдпрд╛ рдкрд░рд┐рд╡рд╣рди рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреА рд▓реЙрдЧ () рд╡рд┐рдзрд┐ рдореЗрдВ _stderr.write() рдФрд░ _stdout.write() рдХреЗ рдЙрдкрдпреЛрдЧ рдХреА рдкреНрд░рддреАрдд рд╣реЛрддреА рд╣реИред рдЕрдЧрд░ рдореИрдВ 49, 62 рдФрд░ 77 рдкрд░ рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рдореЗрдВ рд╢рд░реНрдд рдХреЛ false рдмрджрд▓ рджреЗрддрд╛ рд╣реВрдВ рддрд╛рдХрд┐ рдорд╛рдирдХ рдХрдВрд╕реЛрд▓ред . рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдПрдХ рдЕрд╡рд╛рдВрдЫрдиреАрдп рджреБрд╖реНрдкреНрд░рднрд╛рд╡ рдпрд╣ рд╣реИ рдХрд┐ рдХрд╕реНрдЯрдо рдИрдУрдПрд▓ рдХреЛ рдирдЬрд░рдЕрдВрджрд╛рдЬ рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

bug help wanted important

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

рдореИрдВ рдмрд╕ рдЗрд╕ рдореБрджреНрджреЗ рдореЗрдВ рднрд╛рдЧ рдЧрдпрд╛ рдФрд░ рдЕрдкрдирд╛ рдмрд╣реБрдд рд╣реА рд╕рд░рд▓ рд╡рд┐рдЪрд╛рд░ рдЬреЛрдбрд╝рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛: рдмрд╕ console.log , console.warn рдФрд░ console.error

рдЕрднреА, рд╡рд┐рдВрд╕реНрдЯрди [console._stderr] рдФрд░ [console._stdout] рдХреЗ рд▓рд┐рдП рдЬрд╛рдБрдЪ рдХрд░ рд░рд╣рд╛ рд╣реИ, рд╕реАрдзреЗ рдЙрди рд╕реНрдЯреНрд░реАрдо рдХреЛ рд▓рд┐рдЦрдирд╛ рдкрд╕рдВрдж рдХрд░ рд░рд╣рд╛ рд╣реИ, рд▓реЗрдХрд┐рди console.warn , console.error рдФрд░ console.log рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд╛рдкрд╕ рдЖ рд░рд╣рд╛ рд╣реИ _stderr рдФрд░ _stdout ) рдиреЛрдб.рдЬреЗрдПрд╕ рдореЗрдВ рд╡реИрд╢реНрд╡рд┐рдХ рдХрдВрд╕реЛрд▓ рдЗрдВрд╕реНрдЯреЗрдВрд╕ рдкрд░ рдЙрдкрд▓рдмреНрдз рд╣реИрдВ, рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЙрдиреНрд╣реЗрдВ [рдХрдВрд╕реЛрд▓] рдПрдкреАрдЖрдИ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реЛрдиреЗ рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рд▓реЗрдЦрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рди рд╣реА рд╡реЗ рдЧрдгрдирд╛ рдпреЛрдЧреНрдп рд╣реИрдВ ред

рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдкрд░ рд╕реАрдзреЗ рд╡рд┐рдВрд╕реНрдЯрди рдореЗрдВ рдзрд╛рд░рд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдХреНрдпрд╛ рдлрд╛рдпрджрд╛ рд╣реИ? рдореЗрд░реЗ рд▓рд┐рдП, рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕рдВрджрд░реНрдн рдореЗрдВ console рдХрд╛ рдЕрд░реНрде рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ console рдСрдмреНрдЬреЗрдХреНрдЯ рд╣реИ, рди рдХрд┐ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ "рдХрдВрд╕реЛрд▓" рдпрд╛ рд╕реНрдЯреНрд░реАрдо рдХреЗ рд▓рд┐рдП рдкреНрд░реЙрдХреНрд╕реА рдХреЗ рд░реВрдк рдореЗрдВред рдХреНрдпрд╛ рддрд░реАрдХреЗ рд╣рдореЗрд╢рд╛ рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗ? рдЦрд╛рд╕рдХрд░ рдЬрдм рд╕реЗ рд╡рд┐рдВрд╕реНрдЯрди рдореЗрдВ рдПрдХ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд stream рдкрд░рд┐рд╡рд╣рди рд╣реИ, рдореИрдВ рдореВрд▓ рд░реВрдк рд╕реЗ рд╕реНрдерд╛рдиреАрдп рд╡рд┐рдХрд╛рд╕ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд "рдХрдВрд╕реЛрд▓" рдХреА рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХрд░реВрдВрдЧрд╛ред

рд╡реАрдПрд╕ рдХреЛрдб _have_ рдХрд░рддрд╛ рд╣реИ (рд╢рд╛рдпрдж рдЗрд╕рд▓рд┐рдП рдХрд┐ рдпрд╣ рдиреЛрдб рдкрд░ рдЪрд▓ рд░рд╣рд╛ рд╣реИ), рд▓реЗрдХрд┐рди рдбрд┐рдмрдЧ рдХрдВрд╕реЛрд▓ рдХреЗ рд▓рд┐рдП рдЗрд╕рдХрд╛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ "рдХреИрдкреНрдЪрд░" "рдХрдВрд╕реЛрд▓" рд╣реИ - рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдЙрдиреНрд╣реЛрдВрдиреЗ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ console.log рдХреЙрд▓ рдкрд░ рд╣реБрдХ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдП рд╣реИрдВ , рд╕реНрд╡рдпрдВ рдзрд╛рд░рд╛рдУрдВ рдкрд░ рдирд╣реАрдВред рдпрд╛рдиреА рд╡реАрдПрд╕ рдХреЛрдб рдЖрдЙрдЯрдкреБрдЯ рдЙрддреНрдкрдиреНрди рдХрд░ рд░рд╣рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕реЗ рдХреИрдкреНрдЪрд░ рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИред рдпрд╣ рд╢рд╛рдпрдж рдЗрд╕ рдлрд╝рд╛рдЗрд▓ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИ

рдЬреИрд╕рд╛ рдХрд┐ рдЕрдиреНрдп рдиреЗ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рд╣реИ, рдЖрдк рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХреМрди рд╕рд╛ рдЖрдЙрдЯрдкреБрдЯ рд╡реАрдПрд╕ рдХреЛрдб рдХреИрдкреНрдЪрд░ рдХрд░рддрд╛ рд╣реИ, рдпрд╛ рд╡рд┐рдВрд╕реНрдЯрди рдореЗрдВ "рдХрдВрд╕реЛрд▓" рдЯреНрд░рд╛рдВрд╕рдкреЛрд░реНрдЯ рдХреНрдпрд╛ рдмрджрд▓рддрд╛ рд╣реИред

{
  "version": "0.2.0",
  "configurations": [
    {
      "type": "node",
      "request": "launch",
      "name": "Launch Program",
      "program": "${workspaceFolder}/index.js",
      // Capture "std" instead of "console"
      "outputCapture": "std"
    }
  ]
}

рдзреНрдпрд╛рди рджреЗрдВ, рдпрджрд┐ рдЖрдк @adi7ya рд╕реЗ рд▓рд┐рдВрдХ рдХреА рдЧрдИ рд╕рд▓рд╛рд╣ рдХрд╛ рдкрд╛рд▓рди рдХрд░рддреЗ рд╣реИрдВ, рддреЛ VS рдХреЛрдб рдЙрд╕ рд▓рд╛рдЗрди рдХреЛ рдЖрдЙрдЯрдкреБрдЯ рдХрд░реЗрдЧрд╛ рдЬрд╣рд╛рдВ console.log рдХреЛ рдХреЙрд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ - рдЬреЛ рд╡рд╣ рдЬрдЧрд╣ рдирд╣реАрдВ рд╣реИ рдЬрд╣рд╛рдВ рдЖрдкрдиреЗ рд╡рд┐рдВрд╕реНрдЯрди рдХреЛ рдХреЙрд▓ рдХрд┐рдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдЖрдкрдХреЗ рдУрд╡рд░рд░рд╛рдЗрдб log рдореЗрдВ рд▓рд╛рдЗрдиред рддреЛ, рдпрд╣ рдХреЗрд╡рд▓ рдорд╛рдореВрд▓реА рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИ ...

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

рдПрдХ рдмрдирд╛рдо рдХреЛрдб рдмрдЧ рдХреА рддрд░рд╣ рд▓рдЧрддрд╛ рд╣реИ - рдЕрдЧрд░ рд╣рдо рдЗрд╕реЗ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдирд╣реАрдВ рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ рддреЛ рдЙрдирдХреЗ рдбреАрдмрдЧ рдХрдВрд╕реЛрд▓ рдореЗрдВ _stdout рдЬреИрд╕реЗ рдкреНрд░реЛрдк рдХреНрдпреЛрдВ рд╣реИрдВ? рдмреЗрд╢рдХ, рдЖрдкрдХреЗ рдкрд╛рд╕ рдЕрдкрдиреЗ рдХрд╛рдордХрд╛рдЬ рдХреА рддрд░рд╣ рдПрдХ рд╕рдВрд╢реЛрдзрд┐рдд рдкрд░рд┐рд╡рд╣рди рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рдмрдирд╛рдо рдХреЛрдб рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдЖрджрд░реНрд╢ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдЕрдЧрд░ рдЖрдкрдХреЛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдРрд╕рд╛ рдХреБрдЫ рд╣реИ рдЬрд┐рд╕реЗ рд╡рд┐рдВрд╕реНрдЯрди рдореЗрдВ рддрдп рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рддреЛ рдХрд┐рд╕реА рднреА рд╡рд┐рдЪрд╛рд░ рдХреА рдкреЗрд╢рдХрд╢ рдХрд░рдиреЗ рдореЗрдВ рд╕рдВрдХреЛрдЪ рди рдХрд░реЗрдВ :) рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рд╡рд┐рдВрд╕реНрдЯрди рдХреЛ рдпрд╣ рдЬрд╛рдВрдЪрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдпрд╣ рдмрдирд╛рдо рдХреЛрдб рдореЗрдВ рдЪрд▓ рд░рд╣рд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВ, рдмрд▓реНрдХрд┐ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдмрдирд╛рдо рдХреЛрдб рдХреЗ рдХрдВрд╕реЛрд▓ рдХреЛ рдмреЗрд╣рддрд░ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

@sirockin рдХреНрдпрд╛ рдЖрдк рдПрдХ рдмрдирд╛рдо рдХреЛрдб рдПрдХреНрд╕рдЯреЗрдВрд╢рди рд╡рд┐рдХрд╕рд┐рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ? рдореИрдВ рдЗрд╕реА рддрд░рд╣ рдХреЗ рдореБрджреНрджреЗ рдкрд░ vsode рдореЗрдВ рдЖрдпрд╛ рдерд╛ред рд╡реИрд╕реЗ рднреА, рдЖрдк рдЗрд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдВрд╕реЛрд▓ рдЯреНрд░рд╛рдВрд╕рдкреЛрд░реНрдЯ рдХреЗ рд▓рд┐рдП рд▓реЙрдЧ рд╡рд┐рдзрд┐ рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░ рд╕рдХрддреЗ

рд╣рдореЗрдВ рдЗрд╕реЗ рд╕рдВрдмреЛрдзрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рдЕрдзрд┐рдХ рдЬрд╛рдВрдЪ рдХреА рдЬрд░реВрд░рдд рд╣реИред

рдореИрдВ рдмрд╕ рдЗрд╕ рдореБрджреНрджреЗ рдореЗрдВ рднрд╛рдЧ рдЧрдпрд╛ рдФрд░ рдЕрдкрдирд╛ рдмрд╣реБрдд рд╣реА рд╕рд░рд▓ рд╡рд┐рдЪрд╛рд░ рдЬреЛрдбрд╝рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛: рдмрд╕ console.log , console.warn рдФрд░ console.error

рдЕрднреА, рд╡рд┐рдВрд╕реНрдЯрди [console._stderr] рдФрд░ [console._stdout] рдХреЗ рд▓рд┐рдП рдЬрд╛рдБрдЪ рдХрд░ рд░рд╣рд╛ рд╣реИ, рд╕реАрдзреЗ рдЙрди рд╕реНрдЯреНрд░реАрдо рдХреЛ рд▓рд┐рдЦрдирд╛ рдкрд╕рдВрдж рдХрд░ рд░рд╣рд╛ рд╣реИ, рд▓реЗрдХрд┐рди console.warn , console.error рдФрд░ console.log рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд╛рдкрд╕ рдЖ рд░рд╣рд╛ рд╣реИ _stderr рдФрд░ _stdout ) рдиреЛрдб.рдЬреЗрдПрд╕ рдореЗрдВ рд╡реИрд╢реНрд╡рд┐рдХ рдХрдВрд╕реЛрд▓ рдЗрдВрд╕реНрдЯреЗрдВрд╕ рдкрд░ рдЙрдкрд▓рдмреНрдз рд╣реИрдВ, рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЙрдиреНрд╣реЗрдВ [рдХрдВрд╕реЛрд▓] рдПрдкреАрдЖрдИ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реЛрдиреЗ рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рд▓реЗрдЦрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рди рд╣реА рд╡реЗ рдЧрдгрдирд╛ рдпреЛрдЧреНрдп рд╣реИрдВ ред

рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдкрд░ рд╕реАрдзреЗ рд╡рд┐рдВрд╕реНрдЯрди рдореЗрдВ рдзрд╛рд░рд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдХреНрдпрд╛ рдлрд╛рдпрджрд╛ рд╣реИ? рдореЗрд░реЗ рд▓рд┐рдП, рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕рдВрджрд░реНрдн рдореЗрдВ console рдХрд╛ рдЕрд░реНрде рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ console рдСрдмреНрдЬреЗрдХреНрдЯ рд╣реИ, рди рдХрд┐ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ "рдХрдВрд╕реЛрд▓" рдпрд╛ рд╕реНрдЯреНрд░реАрдо рдХреЗ рд▓рд┐рдП рдкреНрд░реЙрдХреНрд╕реА рдХреЗ рд░реВрдк рдореЗрдВред рдХреНрдпрд╛ рддрд░реАрдХреЗ рд╣рдореЗрд╢рд╛ рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗ? рдЦрд╛рд╕рдХрд░ рдЬрдм рд╕реЗ рд╡рд┐рдВрд╕реНрдЯрди рдореЗрдВ рдПрдХ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд stream рдкрд░рд┐рд╡рд╣рди рд╣реИ, рдореИрдВ рдореВрд▓ рд░реВрдк рд╕реЗ рд╕реНрдерд╛рдиреАрдп рд╡рд┐рдХрд╛рд╕ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд "рдХрдВрд╕реЛрд▓" рдХреА рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХрд░реВрдВрдЧрд╛ред

рд╡реАрдПрд╕ рдХреЛрдб _have_ рдХрд░рддрд╛ рд╣реИ (рд╢рд╛рдпрдж рдЗрд╕рд▓рд┐рдП рдХрд┐ рдпрд╣ рдиреЛрдб рдкрд░ рдЪрд▓ рд░рд╣рд╛ рд╣реИ), рд▓реЗрдХрд┐рди рдбрд┐рдмрдЧ рдХрдВрд╕реЛрд▓ рдХреЗ рд▓рд┐рдП рдЗрд╕рдХрд╛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ "рдХреИрдкреНрдЪрд░" "рдХрдВрд╕реЛрд▓" рд╣реИ - рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдЙрдиреНрд╣реЛрдВрдиреЗ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ console.log рдХреЙрд▓ рдкрд░ рд╣реБрдХ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдП рд╣реИрдВ , рд╕реНрд╡рдпрдВ рдзрд╛рд░рд╛рдУрдВ рдкрд░ рдирд╣реАрдВред рдпрд╛рдиреА рд╡реАрдПрд╕ рдХреЛрдб рдЖрдЙрдЯрдкреБрдЯ рдЙрддреНрдкрдиреНрди рдХрд░ рд░рд╣рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕реЗ рдХреИрдкреНрдЪрд░ рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИред рдпрд╣ рд╢рд╛рдпрдж рдЗрд╕ рдлрд╝рд╛рдЗрд▓ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИ

рдЬреИрд╕рд╛ рдХрд┐ рдЕрдиреНрдп рдиреЗ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рд╣реИ, рдЖрдк рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХреМрди рд╕рд╛ рдЖрдЙрдЯрдкреБрдЯ рд╡реАрдПрд╕ рдХреЛрдб рдХреИрдкреНрдЪрд░ рдХрд░рддрд╛ рд╣реИ, рдпрд╛ рд╡рд┐рдВрд╕реНрдЯрди рдореЗрдВ "рдХрдВрд╕реЛрд▓" рдЯреНрд░рд╛рдВрд╕рдкреЛрд░реНрдЯ рдХреНрдпрд╛ рдмрджрд▓рддрд╛ рд╣реИред

{
  "version": "0.2.0",
  "configurations": [
    {
      "type": "node",
      "request": "launch",
      "name": "Launch Program",
      "program": "${workspaceFolder}/index.js",
      // Capture "std" instead of "console"
      "outputCapture": "std"
    }
  ]
}

рдзреНрдпрд╛рди рджреЗрдВ, рдпрджрд┐ рдЖрдк @adi7ya рд╕реЗ рд▓рд┐рдВрдХ рдХреА рдЧрдИ рд╕рд▓рд╛рд╣ рдХрд╛ рдкрд╛рд▓рди рдХрд░рддреЗ рд╣реИрдВ, рддреЛ VS рдХреЛрдб рдЙрд╕ рд▓рд╛рдЗрди рдХреЛ рдЖрдЙрдЯрдкреБрдЯ рдХрд░реЗрдЧрд╛ рдЬрд╣рд╛рдВ console.log рдХреЛ рдХреЙрд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ - рдЬреЛ рд╡рд╣ рдЬрдЧрд╣ рдирд╣реАрдВ рд╣реИ рдЬрд╣рд╛рдВ рдЖрдкрдиреЗ рд╡рд┐рдВрд╕реНрдЯрди рдХреЛ рдХреЙрд▓ рдХрд┐рдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдЖрдкрдХреЗ рдУрд╡рд░рд░рд╛рдЗрдб log рдореЗрдВ рд▓рд╛рдЗрдиред рддреЛ, рдпрд╣ рдХреЗрд╡рд▓ рдорд╛рдореВрд▓реА рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИ ...

рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдХреНрдпрд╛ рд╣рдо рдбрд┐рдлреЙрд▓реНрдЯ рдХреЛ рдХреИрдкреНрдЪрд░ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдХрдВрд╕реЛрд▓ рдЯреНрд░рд╛рдВрд╕рдкреЛрд░реНрдЯ рдЖрдЙрдЯрдкреБрдЯ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдмрдирд╛рдо рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ, рд╡реАрдПрд╕ рдХреЛрдб рд▓реЛрдЧреЛрдВ рдХреЗ рд╕рд╛рде рдЬрд╛рдВрдЪ рдХрд░рдирд╛: https://github.com/Microsoft/vscode/issues/69959 рдЕрдиреНрдпрдерд╛, рдЖрд╡рд╢реНрдпрдХ рдмрдирд╛рдо рд╕реЗрдЯрд┐рдВрдЧ рдкрд░рд┐рд╡рд░реНрддрди рд╡рд╣рд╛рдВ рдореЗрд░реА рдЯрд┐рдкреНрдкрдгреА рд╕реЗ рдЬреБрдбрд╝реЗ рд╣реБрдП рд╣реИрдВред ^^ рд╣рд╛рд▓рд╛рдВрдХрд┐, рдХрдВрд╕реЛрд▓ рдЯреНрд░рд╛рдВрд╕рдкреЛрд░реНрдЯ рдХреЗ рд▓рд┐рдП рдпрд╣ рдПрдХ рд╡реИрдз рдкреНрд░рд╢реНрди рд╣реИ, рдпрджрд┐ рд▓реЛрдХрдкреНрд░рд┐рдп рд╕рдВрдкрд╛рджрдХреЛрдВ рдХрд╛ рдПрдХ рд╕рдореВрд╣ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ "рд╕рд╣реА" рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛, рддреЛ рд╢рд╛рдпрдж рд╣рдореЗрдВ рдХрдВрд╕реЛрд▓ рдЯреНрд░рд╛рдВрд╕рдкреЛрд░реНрдЯ cc @indexzero рдХреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдмрджрд▓рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдпрд╣ рднреА рдореБрдЭреЗ рдереЛрдбрд╝рд╛ рд╕рд╛, @victorandree рд╕реЗ рдЕрдзрд┐рдХ рд╕рд╣рдордд рдирд╣реАрдВ рд╣реЛ рд╕рдХрд╛ред

рдореИрдВ рдЗрд╕ рд╕рдордп рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЗрд╕ рдмрд╣реБрдд рд╣реА рдирдВрдЧреЗ рдкрд░рд┐рд╡рд╣рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдЕрдЧрд░ рдХрд┐рд╕реА рдФрд░ рдХреЛ рдпрд╣ рдЙрдкрдпреЛрдЧреА рд▓рдЧрддрд╛ рд╣реИ:

import winston from "winston";
import Transport from "winston-transport";

const { MESSAGE } = require("triple-beam");
const level = process.env.LOG_LEVEL || "info";

class SimpleConsoleTransport extends Transport {
  log = (info: any, callback: any) => {
    setImmediate(() => this.emit("logged", info));

    console.log(info[MESSAGE]);

    if (callback) {
      callback();
    }
  };
}

export const logger = winston.createLogger({
  level,
  defaultMeta: {},
  transports: [new SimpleConsoleTransport()]
});

рдХреГрдкрдпрд╛ рдЗрд╕реЗ #1836 . рдореЗрдВ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рдореЗрд░реЗ рдкреНрд░рд╕реНрддрд╛рд╡ рдХреА рдЬрд╛рдВрдЪ рдХрд░реЗрдВ

рдЗрд╕ рдореБрджреНрджреЗ рдореЗрдВ рднреА рднрд╛рдЧ рдЧрдпрд╛, рдФрд░ рдпрд╣ VSCode- рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкреНрд░рддреАрдд рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ - рдпрджрд┐ рдореИрдВ node --inspect рдЪрд▓рд╛рддрд╛ рд╣реВрдВ рдФрд░ рдлрд┐рд░ рдЗрд╕реЗ рдХреНрд░реЛрдо рд╕реЗ chrome://inspect рд╕рд╛рде рд╕рдВрд▓рдЧреНрди рдХрд░рддрд╛ рд╣реВрдВ рддреЛ рдореБрдЭреЗ рдХреЗрд╡рд▓ console.log/etc рдХреЙрд▓ рджрд┐рдЦрд╛рдИ рджреЗрддреА рд╣реИрдВред

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

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

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

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

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

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

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