рд╕реБрдкрд░ рд╕рд┐рдВрдкрд▓ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓реЙрдЧрд┐рдВрдЧ - рджреЛ рдбреЗрдХреЛрд░реЗрдЯрд░, рдФрд░ рдХрд┐рдпрд╛


рдХреНрдпрд╛ рдЖрдк рдЕрднреА рднреА logger.info('ServiceName.methodName.') рд▓рд┐рдЦрддреЗ рд╣реБрдП рдердХ рдЧрдП рд╣реИрдВ рдФрд░ logger.info('ServiceName.methodName -> done.') рдкреНрд░рддреНрдпреЗрдХ рдЫреАрдВрдХ рдХреЗ рд▓рд┐рдП? рд╢рд╛рдпрдж рдЖрдк, рдореЗрд░реЗ рдЬреИрд╕реЗ, рдЗрд╕ рд╡реНрдпрд╡рд╕рд╛рдп рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рд░-рдмрд╛рд░ рд╕реЛрдЪрддреЗ рд╣реИрдВ? рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ, рд╣рдо рдХреНрд▓рд╛рд╕-рд▓реЙрдЧрд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реЗрдВрдЧреЗ рдХрд┐ рд╕рдорд╕реНрдпрд╛ рдХреЗ рд╕рдорд╛рдзрд╛рди рдХреЗ рд░реВрдк рдореЗрдВ рд╕рд┐рд░реНрдл рджреЛ рд╕рдЬреНрдЬрд╛рдХрд╛рд░ рд╣реИрдВред


рдпрд╣ рдХреНрдпреЛрдВ рдЖрд╡рд╢реНрдпрдХ рд╣реИ?


рд╕рднреА рдкреВрд░реНрдгрддрд╛рд╡рд╛рджреА рдЗрдВрдЬреАрдирд┐рдпрд░ рдирд╣реАрдВ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╕рднреА рдЗрдВрдЬреАрдирд┐рдпрд░ рдкреВрд░реНрдгрддрд╛рд╡рд╛рджреА (рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ, рд▓рдЧрднрдЧ) рд╣реИрдВред рд╣рдо рд╕реБрдВрджрд░ рд▓реЗрдХреЛрдирд┐рдХ рд╕рд╛рд░ рдкрд╕рдВрдж рдХрд░рддреЗ рд╣реИрдВред рд╣рдо рдордЧрд░рдордЪреНрдЫреЛрдВ рдХреЗ рд╕реЗрдЯ рдореЗрдВ рд╕реБрдВрджрд░рддрд╛ рджреЗрдЦрддреЗ рд╣реИрдВ, рдЬреЛ рдПрдХ рд╡реНрдпрдХреНрддрд┐ рдЕрдкреНрд░рд╕реНрддреБрдд рд╣реИ рдФрд░ рдкрдврд╝ рдирд╣реАрдВ рд╕рдХрддрд╛ рд╣реИред рд╣рдо рджреЗрд╡рддрд╛рдУрдВ рдХреА рддрд░рд╣ рдорд╣рд╕реВрд╕ рдХрд░рдирд╛ рдкрд╕рдВрдж рдХрд░рддреЗ рд╣реИрдВ, рд╕реВрдХреНрд╖реНрдо рдмреНрд░рд╣реНрдорд╛рдВрдб рдмрдирд╛рддреЗ рд╣реИрдВ рдЬреЛ рд╣рдорд╛рд░реЗ рдирд┐рдпрдореЛрдВ рджреНрд╡рд╛рд░рд╛ рдЬреАрддреЗ рд╣реИрдВред рд╕рдВрднрд╡рддрдГ, рдпреЗ рд╕рднреА рдЧреБрдг рд╣рдорд╛рд░реЗ рд╡рд┐рд╢рд╛рд▓ рдЖрд▓рд╕реНрдп рд╕реЗ рдЙрддреНрдкрдиреНрди рд╣реЛрддреЗ рд╣реИрдВред рдирд╣реАрдВ, рдЗрдВрдЬреАрдирд┐рдпрд░ рдПрдХ рд╡рд░реНрдЧ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рдо рдХрд░рдиреЗ рд╕реЗ рдбрд░рддрд╛ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рд╡рд╣ рдирд┐рдпрдорд┐рдд рд░реВрдк рд╕реЗ рджреЛрд╣рд░рд╛рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдХрд╛рд░реНрдпреЛрдВ рд╕реЗ рдШреГрдгрд╛ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдЙрд╕рдХреЗ рд╣рдерд┐рдпрд╛рд░ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд╣реЛрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВред


рдХреЛрдбрд┐рдВрдЧ рдХреА рдХрдИ рд╣рдЬрд╛рд░ рдкрдВрдХреНрддрд┐рдпрд╛рдВ рдХреЗрд╡рд▓ рд▓реЙрдЧрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рд▓рд┐рдЦреА рдЧрдИ рд╣реИрдВ, рдЖрдорддреМрд░ рдкрд░ рд╣рдо рд╕рдВрджреЗрд╢ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдХреБрдЫ рдкреИрдЯрд░реНрди рдФрд░ рдорд╛рдирдХреЛрдВ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рдЖрддреЗ рд╣реИрдВред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рд╣рдореЗрдВ рдЕрднреА рднреА рдЗрди рдкреИрдЯрд░реНрдиреЛрдВ рдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рд╣реИред рд╡рд░реНрдЧ-рд▓рдХрдбрд╝рд╣рд╛рд░рд╛ рдХрд╛ рдореБрдЦреНрдп "рдХреНрдпреЛрдВ" рдПрдХ рд╡рд░реНрдЧ рдмрдирд╛рдиреЗ рдФрд░ рдЙрд╕рдХреЗ рддрд░реАрдХреЛрдВ рдХреЛ рдХреЙрд▓ рдХрд░рддреЗ рд╕рдордп рдЖрд╕рд╛рдиреА рд╕реЗ рдЯреЗрдореНрдкрд▓реЗрдЯ рд╕рдВрджреЗрд╢реЛрдВ рдХреЛ рд▓реЙрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдШреЛрд╖рдгрд╛рддреНрдордХ, рд╡рд┐рдиреНрдпрд╛рд╕ рдпреЛрдЧреНрдп рддрд░реАрдХрд╛ рдкреНрд░рджрд╛рди рдХрд░рдирд╛ рд╣реИред


рдЪреЗрдХрд░реНрд╕ рдирдВрдЧреЗ!


рдЗрдзрд░-рдЙрдзрд░ рднрдЯрдХрдиреЗ рдХреЗ рдмрд┐рдирд╛, рд╕реАрдзреЗ рдХреЛрдб рдкрд░ рдЬрд╛рдПрдВред


 import { LogClass, Log } from 'class-logger' @LogClass() class ServiceCats { @Log() eat(food: string) { return 'purr' } } 

рдпрд╣ рд╕реЗрд╡рд╛ рддреАрди рд▓реЙрдЧ рдПрдВрдЯреНрд░реА рдмрдирд╛рдПрдЧреА:


  • рдирд┐рд░реНрдорд╛рдгрдХрд░реНрддрд╛ рдХреЛ рдкрд╛рд░рд┐рдд рддрд░реНрдХреЛрдВ рдХреА рд╕реВрдЪреА рдХреЗ рд╕рд╛рде рдЗрд╕реЗ рдмрдирд╛рдиреЗ рд╕реЗ рдкрд╣рд▓реЗред
  • рдХреЙрд▓ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рддрд░реНрдХреЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА рдХреЗ рд╕рд╛рде eat ред
  • eat рдмрд╛рдж рддрд░реНрдХреЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА рдФрд░ рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рдкрд░рд┐рдгрд╛рдо рдХреЗ рд╕рд╛рдеред

рдХреЛрдб рдХреЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ:


 //    ServiceCats // `ServiceCats.construct. Args: [].` const serviceCats = new ServiceCats() //    `eat` // `ServiceCats.eat. Args: [milk].` serviceCats.eat('milk') //    `eat` // `ServiceCats.eat -> done. Args: [milk]. Res: purr.` 

рдЗрд╕реЗ рд▓рд╛рдЗрд╡ рдкреНрд░рд╣рд╛рд░ рдХрд░реЗрдВ ред


рдЙрди рдШрдЯрдирд╛рдУрдВ рдХреА рдкреВрд░реА рд╕реВрдЪреА рдЬреЛ рдЧрд┐рд░рд╡реА рд░рдЦреА рдЬрд╛ рд╕рдХрддреА рд╣реИрдВ:


  • рдХрдХреНрд╖рд╛ рдмрдирд╛рдиреЗ рд╕реЗ рдкрд╣рд▓реЗред
  • рддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдФрд░ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рд╡рд┐рдзрд┐рдпреЛрдВ рдФрд░ рдХрд╛рд░реНрдпрд╛рддреНрдордХ рдЧреБрдгреЛрдВ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рджреЛрдиреЛрдВ рд╕реНрдерд┐рд░ рдФрд░ рдЧреИрд░-рд╕реНрдерд┐рд░ред
  • рд╕рд┐рдВрдХреНрд░реЛрдирд╕ рдФрд░ рдПрд╕рд┐рдВрдХреНрд░реЛрдирд╕ рд╡рд┐рдзрд┐рдпреЛрдВ рдФрд░ рдХрд╛рд░реНрдпрд╛рддреНрдордХ рдЧреБрдгреЛрдВ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рджреЛрдиреЛрдВ рд╕реНрдерд┐рд░ рдФрд░ рдЧреИрд░-рд╕реНрдерд┐рд░ред
  • рддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдФрд░ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рддрд░реАрдХреЛрдВ рдФрд░ рдХрд╛рд░реНрдпрд╛рддреНрдордХ рдЧреБрдгреЛрдВ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдореЗрдВ рддреНрд░реБрдЯрд┐рдпрд╛рдВ, рджреЛрдиреЛрдВ рд╕реНрдерд┐рд░ рдФрд░ рдЧреИрд░-рд╕реНрдерд┐рд░ред

рдПрдХ рдХрд╛рд░реНрдпрд╛рддреНрдордХ рд╕рдВрдкрддреНрддрд┐ рдПрдХ рдПрд░реЛ рдлрдВрдХреНрд╢рди рд╣реИ рдЬреЛ рдПрдХ рдкреНрд░реЙрдкрд░реНрдЯреА ( class ServiceCats { private meow = () => null } ) рдХреЛ рд╕реМрдВрдкрд╛ рдЧрдпрд╛ рд╣реИред рдЬреНрдпрд╛рджрд╛рддрд░ рдЕрдХреНрд╕рд░ рдирд┐рд╖реНрдкрд╛рджрди рд╕рдВрджрд░реНрдн ( this ) рдмрдирд╛рдП рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рд╣рдореЗрдВ рд▓реЙрдЧрд┐рдВрдЧ рдХреЗ "рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдпреЛрдЧреНрдп" рддрд░реАрдХреЗ рдХрд╛ рд╡рд╛рджрд╛ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛


рд╢реНрд░реЗрдгреА-рд▓рдХрдбрд╝рд╣рд╛рд░рд╛ рд╡рд┐рдиреНрдпрд╛рд╕ рдкрджрд╛рдиреБрдХреНрд░рдо рдХреЗ рддреАрди рд╕реНрддрд░:


  • рд╡реИрд╢реНрд╡рд┐рдХ
  • рд╡рд░реНрдЧ
  • рд╡рд┐рдзрд┐

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


рд╡реИрд╢реНрд╡рд┐рдХ рд╡рд┐рдиреНрдпрд╛рд╕


рдпрд╣ рд╕рдВрдкреВрд░реНрдг рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд▓рд┐рдП рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЗрд╕реЗ setConfig рд╕рд╛рде рдУрд╡рд░рд░рд╛рдЗрдб рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред


 import { setConfig } from 'class-logger' setConfig({ log: console.info, }) 

рд╡рд░реНрдЧ рд╡рд┐рдиреНрдпрд╛рд╕


рдпрд╣ рдкреНрд░рддреНрдпреЗрдХ рд╡рд░реНрдЧ рдХреЗ рд▓рд┐рдП рдЕрджреНрд╡рд┐рддреАрдп рд╣реИ рдФрд░ рдЗрд╕ рд╡рд░реНрдЧ рдХреЗ рд╕рднреА рддрд░реАрдХреЛрдВ рдкрд░ рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИред рд╡реИрд╢реНрд╡рд┐рдХ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред


 import { LogClass } from 'class-logger' setConfig({ log: console.info, }) @LogClass({ //       log: console.debug, }) class ServiceCats {} 

рд╡рд┐рдзрд┐ рд╡рд┐рдиреНрдпрд╛рд╕


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


 import { LogClass } from 'class-logger' setConfig({ log: console.info, }) @LogClass({ //       log: console.debug, }) class ServiceCats { private energy = 100 @Log({ //        log: console.warn, }) eat(food: string) { return 'purr' } //    `console.debug`    sleep() { this.energy += 100 } } 

рдкреЛрдХ рд▓рд╛рдЗрд╡


рдХреНрдпрд╛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ?


рд╣рдордиреЗ рдЬрд╛рдВрдЪ рдХреА рдХрд┐ рд╡рд┐рдиреНрдпрд╛рд╕ рдХреИрд╕реЗ рдмрджрд▓рдирд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрднреА рднреА рдпрд╣ рдкрддрд╛ рдирд╣реАрдВ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕рдореЗрдВ рдХреНрдпрд╛ рдмрджрд▓рд╛рд╡ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред


рдпрд╣рд╛рдВ рдЖрдк рд╡рд┐рднрд┐рдиреНрди рдорд╛рдорд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рдХрдИ рдЙрджрд╛рд╣рд░рдг рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВ ред

рдпрджрд┐ рдЖрдк рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдмреЗрд╣рддрд░ рд╕рдордЭрддреЗ рд╣реИрдВ рддреЛ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╕реЗ рд▓рд┐рдВрдХ рдХрд░реЗрдВред рд░реВрд╕реА рдХреА рддреБрд▓рдирд╛ рдореЗрдВ :)

рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рдирд┐рдореНрди рдЧреБрдг рд╣реИрдВ:


рд▓реЙрдЧ


рдпрд╣ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рд╣реИ рдЬреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд▓реЙрдЧрд┐рдВрдЧ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИред рд╡рд╣ рдЗрдирдкреБрдЯ рдкрд░ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рд╕реНрд╡рд░реВрдкрд┐рдд рд╕рдВрджреЗрд╢ рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИред рдирд┐рдореНрди рдШрдЯрдирд╛рдУрдВ рдХреЛ рд▓реЙрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:


  • рдХрдХреНрд╖рд╛ рдмрдирд╛рдиреЗ рд╕реЗ рдкрд╣рд▓реЗред
  • рддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдФрд░ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рд╡рд┐рдзрд┐рдпреЛрдВ рдФрд░ рдХрд╛рд░реНрдпрд╛рддреНрдордХ рдЧреБрдгреЛрдВ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рджреЛрдиреЛрдВ рд╕реНрдерд┐рд░ рдФрд░ рдЧреИрд░-рд╕реНрдерд┐рд░ред
  • рд╕рд┐рдВрдХреНрд░реЛрдирд╕ рдФрд░ рдПрд╕рд┐рдВрдХреНрд░реЛрдирд╕ рд╡рд┐рдзрд┐рдпреЛрдВ рдФрд░ рдХрд╛рд░реНрдпрд╛рддреНрдордХ рдЧреБрдгреЛрдВ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рджреЛрдиреЛрдВ рд╕реНрдерд┐рд░ рдФрд░ рдЧреИрд░-рд╕реНрдерд┐рд░ред

рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, console.log ред


logError


рдпрд╣ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рд╣реИ рдЬреЛ рд▓реЙрдЧрд┐рдВрдЧ рд╕реЗ рднреА рд╕рдВрдмрдВрдзрд┐рдд рд╣реИ, рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ред рдЙрд╕реЗ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рд╕реНрд╡рд░реВрдкрд┐рдд рд╕рдВрджреЗрд╢ рднреА рдорд┐рд▓рддрд╛ рд╣реИред рдирд┐рдореНрди рдШрдЯрдирд╛рдУрдВ рдХреЛ рд▓реЙрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:


  • рддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдФрд░ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рддрд░реАрдХреЛрдВ рдФрд░ рдХрд╛рд░реНрдпрд╛рддреНрдордХ рдЧреБрдгреЛрдВ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдореЗрдВ рддреНрд░реБрдЯрд┐рдпрд╛рдВ, рджреЛрдиреЛрдВ рд╕реНрдерд┐рд░ рдФрд░ рдЧреИрд░-рд╕реНрдерд┐рд░ред

рдбрд┐рдлрд╝реЙрд▓реНрдЯ console.error ред


рдлрд╝реЙрд░реНрдореЗрдЯрд░


рдпрд╣ рджреЛ рддрд░реАрдХреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рд╡рд╕реНрддреБ рд╣реИ: start рдФрд░ end ред рдпреЗ рд╡рд┐рдзрд┐рдпрд╛рдБ рд╕рдорд╛рди рд╕реНрд╡рд░реВрдкрд┐рдд рд╕рдВрджреЗрд╢ рдмрдирд╛рддреА рд╣реИрдВред


start рдирд┐рдореНрди рдШрдЯрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╕рдВрджреЗрд╢ рдмрдирд╛рддрд╛ рд╣реИ:


  • рдХрдХреНрд╖рд╛ рдмрдирд╛рдиреЗ рд╕реЗ рдкрд╣рд▓реЗред
  • рддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдФрд░ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рд╡рд┐рдзрд┐рдпреЛрдВ рдФрд░ рдХрд╛рд░реНрдпрд╛рддреНрдордХ рдЧреБрдгреЛрдВ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рджреЛрдиреЛрдВ рд╕реНрдерд┐рд░ рдФрд░ рдЧреИрд░-рд╕реНрдерд┐рд░ред

end рдирд┐рдореНрди рдШрдЯрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╕рдВрджреЗрд╢ рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИ:


  • рд╕рд┐рдВрдХреНрд░реЛрдирд╕ рдФрд░ рдПрд╕рд┐рдВрдХреНрд░реЛрдирд╕ рд╡рд┐рдзрд┐рдпреЛрдВ рдФрд░ рдХрд╛рд░реНрдпрд╛рддреНрдордХ рдЧреБрдгреЛрдВ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рджреЛрдиреЛрдВ рд╕реНрдерд┐рд░ рдФрд░ рдЧреИрд░-рд╕реНрдерд┐рд░ред
  • рддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдФрд░ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рддрд░реАрдХреЛрдВ рдФрд░ рдХрд╛рд░реНрдпрд╛рддреНрдордХ рдЧреБрдгреЛрдВ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдореЗрдВ рддреНрд░реБрдЯрд┐рдпрд╛рдВ, рджреЛрдиреЛрдВ рд╕реНрдерд┐рд░ рдФрд░ рдЧреИрд░-рд╕реНрдерд┐рд░ред

рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, new ClassLoggerFormatterService() ред


рд╢рд╛рдорд┐рд▓


рдЕрдВрддрд┐рдо рд╕рдВрджреЗрд╢ рдореЗрдВ рдХреНрдпрд╛ рд╢рд╛рдорд┐рд▓ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдЗрд╕рдХрд╛ рд╡рд┐рдиреНрдпрд╛рд╕ред


рдЖрд░реНрдЧ

рдпрд╣ рдпрд╛ рддреЛ рдПрдХ рдмреВрд▓рд┐рдпрди рдореВрд▓реНрдп рдпрд╛ рдПрдХ рд╡рд╕реНрддреБ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред


рдпрджрд┐ рдпрд╣ boolean , рддреЛ рдпрд╣ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рддрд░реНрдХреЛрдВ рдХреА рд╕реВрдЪреА рд╢рд╛рдорд┐рд▓ рд╣реИ (рдпрд╛рдж рд░рдЦреЗрдВ Args: [milk] ?) рд╕рднреА рд╕рдВрджреЗрд╢реЛрдВ рдореЗрдВ ( start рдФрд░ end )ред


рдпрджрд┐ рдпрд╣ рдПрдХ рд╡рд╕реНрддреБ рд╣реИ, рддреЛ рдЗрд╕рдХреЗ рджреЛ рдмреВрд▓рд┐рдпрди рдЧреБрдг рд╣реЛрдиреЗ рдЪрд╛рд╣рд┐рдП: start рдФрд░ end ред start рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ start рд╕рдВрджреЗрд╢реЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рддрд░реНрдХ рд╕реВрдЪреА рд╢рд╛рдорд┐рд▓ start , end рд╕рдВрджреЗрд╢реЛрдВ рдХреЗ рд▓рд┐рдП end ред


рдбрд┐рдлрд╝реЙрд▓реНрдЯ true ред


рдирд┐рд░реНрдорд╛рдг

рдпрд╣ рдПрдХ boolean рдЬреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдХрдХреНрд╖рд╛ рдирд┐рд░реНрдорд╛рдг рдХреЛ рд▓реЙрдЧ рдХрд░рдирд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВред


рдбрд┐рдлрд╝реЙрд▓реНрдЯ true ред


рдкрд░рд┐рдгрд╛рдо

рдпрд╣ рдПрдХ boolean рдЬреЛ рд╡рд┐рдзрд┐ рд╕реЗ рд░рд┐рдЯрд░реНрди рд╡реИрд▓реНрдпреВ рдХреЗ рд▓реЙрдЧрд┐рдВрдЧ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИ рдХрд┐ рд╡рд╛рдкрд╕реА рдореВрд▓реНрдп рди рдХреЗрд╡рд▓ рд╡рд╣ рд╣реИ рдЬреЛ рд╡рд┐рдзрд┐ рд╕рдлрд▓ рдирд┐рд╖реНрдкрд╛рджрди рдкрд░ рд╡рд╛рдкрд╕ рдЖрддреА рд╣реИ, рдмрд▓реНрдХрд┐ рдпрд╣ рднреА рд╣реИ рдХрд┐ рдЕрд╕рдлрд▓ рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдпрд╣ рддреНрд░реБрдЯрд┐ рд╣реИред рдпрд╛рдж рд░рдЦреЗрдВ Res: purr ? рдпрджрд┐ рдпрд╣ рдзреНрд╡рдЬ false , рддреЛ рдХреЛрдИ Res: purr рдирд╣реАрдВ рд╣реЛрдЧрд╛ Res: purr


рдбрд┐рдлрд╝реЙрд▓реНрдЯ true ред


classInstance

рдпрд╣ рдпрд╛ рддреЛ рдПрдХ рдмреВрд▓рд┐рдпрди рдореВрд▓реНрдп рдпрд╛ рдПрдХ рд╡рд╕реНрддреБ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдЕрд╡рдзрд╛рд░рдгрд╛ рд╣реА include.args ред


рдЕрдкрдиреА рд╢реНрд░реЗрдгреА рдХреЗ рдХреНрд░рдордмрджреНрдз рдЙрджрд╛рд╣рд░рдг рдХреЛ рдкреЛрд╕реНрдЯ рдореЗрдВ рдЬреЛрдбрд╝рддрд╛ рд╣реИред рджреВрд╕рд░реЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ, рдпрджрд┐ рдЖрдкрдХреА рдХрдХреНрд╖рд╛ рдореЗрдВ рдХреЛрдИ рдЧреБрдг рд╣реИрдВ, рддреЛ рдЙрдиреНрд╣реЗрдВ JSON рдореЗрдВ рдХреНрд░рдордмрджреНрдз рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдФрд░ рд▓реЙрдЧ рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдПрдЧрд╛ред


рд╕рднреА рдЧреБрдг рдХреНрд░рдордмрджреНрдз рдирд╣реАрдВ рд╣реИрдВред рдХреНрд▓рд╛рд╕-рд▓реЙрдЧрд░ рдирд┐рдореНрди рддрд░реНрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ:


  • рд╣рдо рдЕрдкрдиреЗ рд╕рднреА (рдЬреЛ рдХрд┐ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рдореЗрдВ рдирд╣реАрдВ рд╣реИрдВ) рдЗрдВрдЯреЗрдиреНрд╕рд╛ рдХреЗ рдЧреБрдгреЛрдВ рдХреЛ рд▓реЗрддреЗ рд╣реИрдВред
    • рдХреНрдпреЛрдВ? рдмрд╣реБрдд рдХрдо рд╣реА, рдПрдХ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рдмрджрд▓рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рд▓реЙрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдХрдо рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИред
  • рд╣рдо рдЙрди рд╕рднреА рдкреНрд░рдХрд╛рд░ рдХреЗ function рд╕реЗ рдмрд╛рд╣рд░ рдлреЗрдВрдХ рджреЗрддреЗ рд╣реИрдВред
    • рдХреНрдпреЛрдВ? рдЕрдзрд┐рдХ рдмрд╛рд░ рдирд╣реАрдВ, рдкреНрд░рдХрд╛рд░ function рдЧреБрдг рдХреЗрд╡рд▓ рддреАрд░ рдлрд╝рдВрдХреНрд╢рди рд╣реИрдВ рдЬреЛ рд╕рдВрджрд░реНрдн ( this ) рдмрдирд╛рдП рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдкрд╛рд░рдВрдкрд░рд┐рдХ рддрд░реАрдХреЛрдВ рд╕реЗ рдирд╣реАрдВ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рдЙрдирдХреЗ рдкрд╛рд╕ рд╢рд╛рдпрдж рд╣реА рдХрднреА рдПрдХ рдЧрддрд┐рд╢реАрд▓ рдкреНрд░рдХреГрддрд┐ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЙрдиреНрд╣реЗрдВ рд▓реЙрдЧ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рдорддрд▓рдм рдирд╣реАрдВ рд╣реИред
  • рд╣рдо рдЙрди рд╕рднреА рд╡рд╕реНрддреБрдУрдВ рд╕реЗ рдмрд╛рд╣рд░ рдлреЗрдВрдХ рджреЗрддреЗ рд╣реИрдВ рдЬреЛ рд╕рд╛рдзрд╛рд░рдг рд╡рд╕реНрддреБ рдирд╣реАрдВ рд╣реИрдВред
    • рдпреЗ рд╕рд╛рдзрд╛рд░рдг рд╡рд╕реНрддреБрдПрдВ рдХреНрдпрд╛ рд╣реИрдВ? рдпрджрд┐ рдЗрд╕рдХрд╛ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк Object.prototype рд╣реИ рддреЛ ClassLoggerFormatterService рдХрд┐рд╕реА рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рд╕рд░рд▓ Object.prototype ред
    • рдХреНрдпреЛрдВ? рдЕрдХреНрд╕рд░ рдЕрдиреНрдп рд╕реЗрд╡рд╛ рд╡рд░реНрдЧреЛрдВ рдХреЗ рдЙрджрд╛рд╣рд░рдг рдЧреБрдгреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рд░реНрдп рдХрд░рддреЗ рд╣реИрдВред рдпрджрд┐ рд╣рдо рдХреНрд░рдордмрджреНрдз рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рд╣рдорд╛рд░реЗ рд▓реЙрдЧ рд╕рдмрд╕реЗ рдмрджрд╕реВрд░рдд рддрд░реАрдХреЗ рд╕реЗ рдкреНрд░рдлреБрд▓реНрд▓рд┐рдд рд╣реЛрдВрдЧреЗред
  • JSON рд╕реНрдЯреНрд░рд┐рдВрдЧ рдореЗрдВ рдЬреЛ рдХреБрдЫ рднреА рд░рд╣рддрд╛ рд╣реИ, рдЙрд╕рдореЗрдВ рд╕реАрд░рд┐рдпрд▓ рдХрд░реЗрдВред

 class ServiceA {} @LogClass({ include: { classInstance: true, }, }) class Test { private serviceA = new ServiceA() private prop1 = 42 private prop2 = { test: 42 } private method1 = () => null @Log() public method2() { return 42 } } //    `Test` // 'Test.construct. Args: []. Class instance: {"prop1":42,"prop2":{"test":42}}.' const test = new Test() //    `method2` // 'Test.method2. Args: []. Class instance: {"prop1":42,"prop2":{"test":42}}.' test.method2() //    `method2` // 'Test.method2 -> done. Args: []. Class instance: {"prop1":42,"prop2":{"test":42}}. Res: 42.' 

рдбрд┐рдлрд╝реЙрд▓реНрдЯ false ред


рд╕рдВрджреЗрд╢ рд╕реНрд╡рд░реВрдкрдг рдкрд░ рдкреВрд░реНрдг рдирд┐рдпрдВрддреНрд░рдг рд░рдЦреЗрдВ


рдХреНрдпрд╛ рд╣реЛрдЧрд╛ рдЕрдЧрд░ рдЖрдк рд╡рд┐рдЪрд╛рд░ рдкрд╕рдВрдж рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЖрдкрдХрд╛ рд╡рд┐рдЪрд╛рд░ рдПрдХ рдЕрд▓рдЧ рд╕рдВрджреЗрд╢ рд▓рд╛рдЗрди рдкреНрд░рд╛рд░реВрдк рдкрд░ рдЬреЛрд░ рджреЗрддрд╛ рд╣реИ? рдЖрдк рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдлрд╝реЙрд░реНрдореЗрдЯрд░ рдХреЛ рдкрд╛рд╕ рдХрд░рдХреЗ рд╕рдВрджреЗрд╢ рдлрд╝реЙрд░реНрдореЗрдЯрд┐рдВрдЧ рдкрд░ рдкреВрд░реНрдг рдирд┐рдпрдВрддреНрд░рдг рд▓реЗ рд╕рдХрддреЗ рд╣реИрдВред


рдЖрдк рд╕реНрдХреНрд░реИрдЪ рд╕реЗ рдЕрдкрдирд╛ рдлреЙрд░реНрдореЗрдЯрд░ рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВред рдмреЗрд╢рдХред рд▓реЗрдХрд┐рди рдпрд╣ рд╡рд┐рдХрд▓реНрдк рдЗрд╕ рдврд╛рдВрдЪреЗ рдХреЗ рднреАрддрд░ рдХрд╡рд░ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ (рдпрджрд┐ рдЖрдк рдЗрд╕ рд╡рд┐рд╢реЗрд╖ рд╡рд┐рдХрд▓реНрдк рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ, рддреЛ README рдореЗрдВ "рд╕реНрд╡рд░реВрдкрдг" рдЕрдиреБрднрд╛рдЧ рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВ)ред


рдлрд╝реЙрд░реНрдореЗрдЯрд┐рдВрдЧ рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░рдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рддреЗрдЬ рдФрд░ рдЖрд╕рд╛рди рддрд░реАрдХрд╛ рд╣реИ рдХрд┐ рдЖрдк рдЕрдкрдиреЗ рдлреЙрд░реНрдореЗрдЯ рдХреЛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ ClassLoggerFormatterService - ClassLoggerFormatterService ред


ClassLoggerFormatterService рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд protected рддрд░реАрдХреЗ рд╣реИрдВ рдЬреЛ рдЕрдВрддрд┐рдо рд╕рдВрджреЗрд╢реЛрдВ рдХреЗ рдЫреЛрдЯреЗ рдмреНрд▓реЙрдХ рдмрдирд╛рддреЗ рд╣реИрдВ:


  • base
    • рд╡рд░реНрдЧ рдХрд╛ рдирд╛рдо рдФрд░ рд╡рд┐рдзрд┐ рдХрд╛ рдирд╛рдо рджреЗрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг: ServiceCats.eat ред
  • operation
    • рд░рд┐рдЯрд░реНрди -> done рдпрд╛ -> error рдЖрдзрд╛рд░ рдкрд░ рдХрд┐ рдХреНрдпрд╛ рд╡рд┐рдзрд┐ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдкреВрд░реА рд╣реБрдИред
  • args
  • classInstance
    • рд╡рд░реНрдЧ рдХреЗ рдХреНрд░рдордмрджреНрдз рдЙрджрд╛рд╣рд░рдг рджреЗрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг . Class instance: {"prop1":42,"prop2":{"test":42}} . Class instance: {"prop1":42,"prop2":{"test":42}} ред рдпрджрд┐ рдЖрдкрдиреЗ рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛ рд╣реИред config рдореЗрдВ include.classInstance , рд▓реЗрдХрд┐рди рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ рдЙрджрд╛рд╣рд░рдг рдЦреБрдж рд▓реЙрдЧрд┐рдВрдЧ рдХреЗ рд╕рдордп рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕реНрдерд┐рд░ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдпрд╛ рдХрдХреНрд╖рд╛ рдмрдирд╛рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ), N/A рджреЗрддрд╛ рд╣реИ N/A
  • result
    • рдПрдХ рдЕрдиреБрдХреНрд░рдорд┐рдд рдирд┐рд╖реНрдкрд╛рджрди рдкрд░рд┐рдгрд╛рдо рдпрд╛ рдХреНрд░рдордмрджреНрдз рддреНрд░реБрдЯрд┐ рджреЗрддрд╛ рд╣реИред рд╣реБрдб рдХреЗ рддрд╣рдд рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд▓рд┐рдП рддреЗрдЬ-рд╕реБрд░рдХреНрд╖рд┐рдд-рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдХреНрд░рдордмрджреНрдз рддреНрд░реБрдЯрд┐ рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЧреБрдг рд╢рд╛рдорд┐рд▓ рд╣реИрдВ:
    • рд╡рд░реНрдЧ (рдлрд╝рдВрдХреНрд╢рди) рдХрд╛ рдирд╛рдо рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рддреНрд░реБрдЯрд┐ ( error.constructor.name ) рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
    • рдХреЛрдб ( error.code )ред
    • рд╕рдВрджреЗрд╢ ( error.message )ред
    • рдирд╛рдо ( error.name )ред
    • рд╕реНрдЯреИрдХ рдЯреНрд░реЗрд╕ ( error.stack )ред
  • final
    • рд▓реМрдЯрддрд╛ рд╣реИ . ред рд╕рд░рд▓ рд╣реИ . ред

start рд╕рдВрджреЗрд╢ рдореЗрдВ рдирд┐рдореНрди рд╢рд╛рдорд┐рд▓ рд╣реИрдВ:


  • base
  • args
  • classInstance
  • final

end рд╕рдВрджреЗрд╢ рдореЗрдВ рдирд┐рдореНрди рд╢рд╛рдорд┐рд▓ рд╣реИрдВ:


  • base
  • operation
  • args
  • classInstance
  • result
  • final

рдЖрдк рдХреЗрд╡рд▓ рдЙрди рдмреБрдирд┐рдпрд╛рджреА рддрд░реАрдХреЛрдВ рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд┐рдирдХреА рдЖрдкрдХреЛ рдЬрд╝рд░реВрд░рдд рд╣реИред


рдЖрдЗрдП рджреЗрдЦреЗрдВ рдХрд┐ рдЖрдк рд╕рднреА рдкреЛрд╕реНрдЯ рдореЗрдВ рдЯрд╛рдЗрдорд╕реНрдЯреИрдореНрдк рдХреЛ рдХреИрд╕реЗ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред


рдореИрдВ рдпрд╣ рдирд╣реАрдВ рдХрд╣ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рдРрд╕рд╛ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдкрд┐рдиреЛ , рд╡рд┐рдВрд╕реНрдЯрди, рдФрд░ рдЕрдзрд┐рдХрд╛рдВрд╢ рдЕрдиреНрдп рд▓реЛрдЧ рдЕрдкрдиреЗ рджрдо рдкрд░ рдРрд╕рд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рдЙрджрд╛рд╣рд░рдг рдХреЗрд╡рд▓ рд╢реИрдХреНрд╖рд┐рдХ рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рд╣реИред

 import { ClassLoggerFormatterService, IClassLoggerFormatterStartData, setConfig, } from 'class-logger' class ClassLoggerTimestampFormatterService extends ClassLoggerFormatterService { protected base(data: IClassLoggerFormatterStartData) { const baseSuper = super.base(data) const timestamp = Date.now() const baseWithTimestamp = `${timestamp}:${baseSuper}` return baseWithTimestamp } } setConfig({ formatter: new ClassLoggerTimestampFormatterService(), }) 

рдкреЛрдХ рд▓рд╛рдЗрд╡


рдирд┐рд╖реНрдХрд░реНрд╖


рд╕реНрдерд╛рдкрдирд╛ рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХрд╛ рдкрд╛рд▓рди рдХрд░рдирд╛ рдпрд╛рдж рд░рдЦреЗрдВ рдФрд░ рдЕрдкрдиреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдкрд░ рдЗрд╕ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЦреБрдж рдХреЛ рдкрд░рд┐рдЪрд┐рдд рдХрд░реЗрдВред


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

Source: https://habr.com/ru/post/hi447970/


All Articles