
рдЖрдкрдиреЗ рдХрд┐рддрдиреА рдмрд╛рд░ 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
рдмрд╛рдж рдЙрд╕рдХреЗ рддрд░реНрдХреЛрдВ рдФрд░ рдЙрд╕рдХреЗ рдкрд░рд┐рдгрд╛рдо рдХреА рд╕реВрдЪреА рдХреЗ рд╕рд╛рде рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдХреЛрдб рдХреЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ:
// Logs before the actual call to the constructor // `ServiceCats.construct. Args: [].` const serviceCats = new ServiceCats() // Logs before the actual call to `eat` // `ServiceCats.eat. Args: [milk].` serviceCats.eat('milk') // Logs after the actual call to `eat` // `ServiceCats.eat -> done. Args: [milk]. Res: purr.`
рд▓рд╛рдЗрд╡ рдбреЗрдореЛ ред
рд╣рдо рдФрд░ рдХреНрдпрд╛ рд▓реЙрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ? рдпрд╣рд╛рдБ рдШрдЯрдирд╛рдУрдВ рдХреА рдкреВрд░реА рд╕реВрдЪреА рд╣реИ:
- рд╡рд░реНрдЧ рдирд┐рд░реНрдорд╛рдг рд╕реЗ рдкрд╣рд▓реЗред
- рддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдФрд░ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рд╕реНрдерд┐рд░ рдФрд░ рдЧреИрд░-рд╕реНрдерд┐рд░ рддрд░реАрдХреЛрдВ рдФрд░ рдХрд╛рд░реНрдпрд╛рддреНрдордХ рдЧреБрдгреЛрдВ рд╕реЗ рдкрд╣рд▓реЗред
- рддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдФрд░ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рд╕реНрдерд┐рд░ рдФрд░ рдЧреИрд░-рд╕реНрдерд┐рд░ рддрд░реАрдХреЛрдВ рдФрд░ рдХрд╛рд░реНрдпрд╛рддреНрдордХ рдЧреБрдгреЛрдВ рдХреЗ рдмрд╛рджред
- рддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдФрд░ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рд╕реНрдерд┐рд░ рдФрд░ рдЧреИрд░-рд╕реНрдерд┐рд░ рддрд░реАрдХреЛрдВ рдФрд░ рдХрд╛рд░реНрдпрд╛рддреНрдордХ рдЧреБрдгреЛрдВ рдХреА рддреНрд░реБрдЯрд┐рдпрд╛рдВред
рдлрд╝рдВрдХреНрд╢рдирд▓ рдкреНрд░реЙрдкрд░реНрдЯреА рдПрдХ рдПрд░реЛ рдлрдВрдХреНрд╢рди рд╣реИ рдЬреЛ рдХрд┐рд╕реА рдкреНрд░реЙрдкрд░реНрдЯреА ( class ServiceCats { private meow = () => null }
) рдХреЛ рд╕реМрдВрдкрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдЗрд╕реЗ рд╣рдорд╛рд░реА рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд╕рдорд╛рдпреЛрдЬрд┐рдд рдХрд░рдирд╛
рдЕрдм рддрдХ рддреЛ рдЕрдЪреНрдЫрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╣рдореЗрдВ "рдЕрдиреБрдХреВрд▓рди" рдХрд╛ рд╡рд╛рджрд╛ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд╣реИ рдирд╛? рддреЛ рд╣рдо рдЗрд╕реЗ рдХреИрд╕реЗ рдЯреНрд╡рд┐рд╕реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?
рд╡рд░реНрдЧ-рд▓рдХрдбрд╝рд╣рд╛рд░рд╛ рдкрджрд╛рдиреБрдХреНрд░рдорд┐рдд рд╡рд┐рдиреНрдпрд╛рд╕ рдХреА рддреАрди рдкрд░рддреЗрдВ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ:
- рд╡реИрд╢реНрд╡рд┐рдХ
- рд╡рд░реНрдЧ
- рд╡рд┐рдзрд┐
рдкреНрд░рддреНрдпреЗрдХ рд╡рд┐рдзрд┐ рдХреЙрд▓ рдкрд░, рдЗрди рддреАрдиреЛрдВ рдХрд╛ рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдКрдкрд░ рд╕реЗ рдиреАрдЪреЗ рддрдХ рдПрдХ рд╕рд╛рде рд╡рд┐рд▓рдп рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдХреБрдЫ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╡реИрд╢реНрд╡рд┐рдХ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрдк рдХрд┐рд╕реА рднреА рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рдмрд┐рдирд╛ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рд╡реИрд╢реНрд╡рд┐рдХ рд╡рд┐рдиреНрдпрд╛рд╕
рдпрд╣ рдРрдк-рд╡рд╛рдЗрдб рдХреЙрдиреНрдлрд┐рдЧ рд╣реИред setConfig
рдХреЙрд▓ рдХреЗ рд╕рд╛рде рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
import { setConfig } from 'class-logger' setConfig({ log: console.info, })
рд╡рд░реНрдЧ рд╡рд┐рдиреНрдпрд╛рд╕
рдпрд╣ рдЖрдкрдХреА рдХрдХреНрд╖рд╛ рдХреЗ рд╣рд░ рддрд░реАрдХреЗ рдкрд░ рдкреНрд░рднрд╛рд╡ рдбрд╛рд▓рддрд╛ рд╣реИред рдпрд╣ рд╡реИрд╢реНрд╡рд┐рдХ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░ рд╕рдХрддрд╛ рд╣реИред
import { LogClass } from 'class-logger' setConfig({ log: console.info, }) @LogClass({ // It overrides global config for this service log: console.debug, }) class ServiceCats {}
рд╡рд┐рдзрд┐ рд╡рд┐рдиреНрдпрд╛рд╕
рдпрд╣ рдХреЗрд╡рд▓ рд╡рд┐рдзрд┐ рдХреЛ рд╣реА рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддрд╛ рд╣реИред рд╡рд░реНрдЧ рд╡рд┐рдиреНрдпрд╛рд╕ рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЗрд╕рд▓рд┐рдП, рд╡реИрд╢реНрд╡рд┐рдХ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рдиред
import { LogClass } from 'class-logger' setConfig({ log: console.info, }) @LogClass({ // It overrides global config for this service log: console.debug, }) class ServiceCats { private energy = 100 @Log({ // It overrides class config for this method only log: console.warn, }) eat(food: string) { return 'purr' } // This method stil uses `console.debug` provided by class config sleep() { this.energy += 100 } }
рд▓рд╛рдЗрд╡ рдбреЗрдореЛ
рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╡рд┐рдХрд▓реНрдк
рдареАрдХ рд╣реИ, рд╣рдордиреЗ рд╕реАрдЦрд╛ рд╣реИ рдХрд┐ рдЪреВрдХ рдХреЛ рдХреИрд╕реЗ рдмрджрд▓рдирд╛ рд╣реИ, рдлрд┐рд░ рднреА рдпрд╣ рдХрд╡рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЪреЛрдЯ рдирд╣реАрдВ рдкрд╣реБрдВрдЪрд╛рдПрдЧрд╛ рдХрд┐ рдХреНрдпрд╛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдирд╛ рд╣реИ, рд╣реБрд╣?
рдпрд╣рд╛рдВ рдЖрдк рдмрд╣реБрдд рд╕рд╛рд░реЗ рдЙрдкрдпреЛрдЧреА рдХреЙрдиреНрдлрд┐рдЧрд░ рдУрд╡рд░рдбреНрд░рд╛рдЗрдб рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВ ред
рдпрджрд┐ рдЖрдк рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЕрдВрдЧреНрд░реЗрдЬрд╝реА рд╕реЗ рдмреЗрд╣рддрд░ рдмреЛрд▓рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣рд╛рдБ рдкрд░ рдбрд┐рд╕реНрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХрд╛ рд▓рд┐рдВрдХ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ :)
рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рдпреЗ рдЧреБрдг рд╣реИрдВ:
рд▓реЙрдЧ
рдпрд╣ рдПрдХ рдРрд╕рд╛ рдХрд╛рд░реНрдп рд╣реИ рдЬреЛ рдЕрдВрддрд┐рдо рд╕реНрд╡рд░реВрдкрд┐рдд рд╕рдВрджреЗрд╢ рдХреА рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд▓реЙрдЧрд┐рдВрдЧ рдХрд░рддрд╛ рд╣реИред рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдЗрди рдШрдЯрдирд╛рдУрдВ рдХреЛ рд▓реЙрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:
- рд╡рд░реНрдЧ рдирд┐рд░реНрдорд╛рдг рд╕реЗ рдкрд╣рд▓реЗред
- рддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдФрд░ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рд╕реНрдерд┐рд░ рдФрд░ рдЧреИрд░-рд╕реНрдерд┐рд░ рддрд░реАрдХреЛрдВ рдФрд░ рдХрд╛рд░реНрдпрд╛рддреНрдордХ рдЧреБрдгреЛрдВ рд╕реЗ рдкрд╣рд▓реЗред
- рддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдФрд░ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рд╕реНрдерд┐рд░ рдФрд░ рдЧреИрд░-рд╕реНрдерд┐рд░ рддрд░реАрдХреЛрдВ рдФрд░ рдХрд╛рд░реНрдпрд╛рддреНрдордХ рдЧреБрдгреЛрдВ рдХреЗ рдмрд╛рджред
рдбрд┐рдлрд╝реЙрд▓реНрдЯ: console.log
logError
рдпрд╣ рдПрдХ рдРрд╕рд╛ рдХрд╛рд░реНрдп рд╣реИ рдЬреЛ рдЕрдВрддрд┐рдо рд╕реНрд╡рд░реВрдкрд┐рдд рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рдХреА рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд▓реЙрдЧрд┐рдВрдЧ рдХрд░рддрд╛ рд╣реИред рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреЗрд╡рд▓ рдПрдХ рдФрд░ рдХреЗрд╡рд▓ рдИрд╡реЗрдВрдЯ рд▓реЙрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:
- рддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдФрд░ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рд╕реНрдерд┐рд░ рдФрд░ рдЧреИрд░-рд╕реНрдерд┐рд░ рддрд░реАрдХреЛрдВ рдФрд░ рдХрд╛рд░реНрдпрд╛рддреНрдордХ рдЧреБрдгреЛрдВ рдХреА рддреНрд░реБрдЯрд┐рдпрд╛рдВред
рдбрд┐рдлрд╝реЙрд▓реНрдЯ: console.error
рдпрд╣ рджреЛ рддрд░реАрдХреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рд╡рд╕реНрддреБ рд╣реИ: start
рдФрд░ end
ред рдпрд╣ рдбреЗрдЯрд╛ рдХреЛ рдЕрдВрддрд┐рдо рд╕реНрдЯреНрд░рд┐рдВрдЧ рдореЗрдВ рд▓реЙрдЧрд┐рдВрдЧ рдХрд░рддрд╛ рд╣реИред
рдЗрди рдШрдЯрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдкреНрд░рд╛рд░реВрдк рд╕рдВрджреЗрд╢ start
:
- рд╡рд░реНрдЧ рдирд┐рд░реНрдорд╛рдг рд╕реЗ рдкрд╣рд▓реЗред
- рддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдФрд░ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рд╕реНрдерд┐рд░ рдФрд░ рдЧреИрд░-рд╕реНрдерд┐рд░ рддрд░реАрдХреЛрдВ рдФрд░ рдХрд╛рд░реНрдпрд╛рддреНрдордХ рдЧреБрдгреЛрдВ рд╕реЗ рдкрд╣рд▓реЗред
рдЗрди рдШрдЯрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдкреНрд░рд╛рд░реВрдк рд╕рдВрджреЗрд╢:
- рддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдФрд░ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рд╕реНрдерд┐рд░ рдФрд░ рдЧреИрд░-рд╕реНрдерд┐рд░ рддрд░реАрдХреЛрдВ рдФрд░ рдХрд╛рд░реНрдпрд╛рддреНрдордХ рдЧреБрдгреЛрдВ рдХреЗ рдмрд╛рджред
- рддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдФрд░ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рд╕реНрдерд┐рд░ рдФрд░ рдЧреИрд░-рд╕реНрдерд┐рд░ рддрд░реАрдХреЛрдВ рдФрд░ рдХрд╛рд░реНрдпрд╛рддреНрдордХ рдЧреБрдгреЛрдВ рдХреА рддреНрд░реБрдЯрд┐рдпрд╛рдВред
рдбрд┐рдлрд╝реЙрд▓реНрдЯ: new ClassLoggerFormatterService()
рд╢рд╛рдорд┐рд▓
рд╕рдВрджреЗрд╢ рдореЗрдВ рдХреНрдпрд╛ рд╢рд╛рдорд┐рд▓ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдЗрд╕рдХрд╛ рд╡рд┐рдиреНрдпрд╛рд╕ред
рдЖрд░реНрдЧ
рдпрд╣ рдпрд╛ рддреЛ рдПрдХ рдмреВрд▓рд┐рдпрди рдпрд╛ рдПрдХ рд╡рд╕реНрддреБ рд╣реЛ рд╕рдХрддреА рд╣реИред
рдпрджрд┐ рдпрд╣ рдПрдХ рдмреВрд▓рд┐рдпрди рд╣реИ, рддреЛ рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рддрд░реНрдХреЛрдВ рдХреА рд╕реВрдЪреА рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░реЗрдВ (рдпрд╛рдж рд░рдЦреЗрдВ рдХрд┐ Args: [milk]
?) рджреЛрдиреЛрдВ рдореЗрдВ, рд╢реБрд░реВ рдХрд░реЗрдВ (рдирд┐рд░реНрдорд╛рдг рд╕реЗ рдкрд╣рд▓реЗ рдФрд░ рд╡рд┐рдзрд┐ рдХреЙрд▓ рд╕реЗ рдкрд╣рд▓реЗ) рдФрд░ рдЕрдВрдд (рд╡рд┐рдзрд┐ рдХреЙрд▓, рддреНрд░реБрдЯрд┐ рд╡рд┐рдзрд┐ рдХреЙрд▓ рдХреЗ рдмрд╛рдж), рд╕рдВрджреЗрд╢ред
рдпрджрд┐ рдпрд╣ рдПрдХ рд╡рд╕реНрддреБ рд╣реИ, рддреЛ рдЗрд╕рдореЗрдВ рджреЛ рдмреВрд▓рд┐рдпрди рдЧреБрдг рд╣реЛрдиреЗ рдЪрд╛рд╣рд┐рдП: start
рдФрд░ end
ред start
рдореЗрдВ рд╕рдВрджреЗрд╢реЛрдВ рдХреЛ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддрд░реНрдХреЛрдВ рдХреА рд╕реВрдЪреА рд╢рд╛рдорд┐рд▓ рд╣реИ / рд╢рд╛рдорд┐рд▓ рд╣реИ, end
рд╕рдВрджреЗрд╢реЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдорд╛рди рд╣реИред
рдбрд┐рдлрд╝реЙрд▓реНрдЯ: true
рдирд┐рд░реНрдорд╛рдг
рд╡рд░реНрдЧ рдирд┐рд░реНрдорд╛рдг рдпрд╛ рдирд╣реАрдВ рд▓реЙрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмреВрд▓рд┐рдпрди рдзреНрд╡рдЬ рд╕реЗрдЯрд┐рдВрдЧред
рдбрд┐рдлрд╝реЙрд▓реНрдЯ: true
рдкрд░рд┐рдгрд╛рдо
рдПрдХ рдЕрдиреНрдп рдмреБрд▓рд┐рдпрди рдлреНрд▓реИрдЧ рд╕реЗрдЯрд┐рдВрдЧ рдЬрд┐рд╕рдореЗрдВ рд╡рд┐рдзрд┐ рдХреЙрд▓ рдХрд╛ рд░рд┐рдЯрд░реНрди рдорд╛рди рдпрд╛ рдЙрд╕рдХреЗ рджреНрд╡рд╛рд░рд╛ рдлреЗрдВрдХреА рдЧрдИ рддреНрд░реБрдЯрд┐ рд╢рд╛рдорд┐рд▓ рд╣реИред рдпрд╛рдж рд░рдЦреЗрдВ Res: purr
? рдпрджрд┐ рдЖрдк рдЗрд╕ рдзреНрд╡рдЬ рдХреЛ false
рд╕реЗрдЯ false
рддреЛ рдХреЛрдИ Res: purr
рдирд╣реАрдВ рд╣реЛрдЧрд╛ Res: purr
рдбрд┐рдлрд╝реЙрд▓реНрдЯ: true
classInstance
рдПрдХ рдмрд╛рд░ рдлрд┐рд░, рдПрдХ рдмреВрд▓рд┐рдпрди рдпрд╛ рдПрдХ рд╡рд╕реНрддреБред
рдпрджрд┐ рдЖрдк рдЗрд╕реЗ рд╕рдХреНрд╖рдо рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд▓реЙрдЧ рдореЗрдВ рдЖрдкрдХреЗ рд╡рд░реНрдЧ рдЙрджрд╛рд╣рд░рдг рдХрд╛ рдПрдХ рдХрдбрд╝рд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдПрдЧрд╛ред рджреВрд╕рд░реЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ, рдпрджрд┐ рдЖрдкрдХреЗ рд╡рд░реНрдЧ рдХреЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рдХреБрдЫ рдЧреБрдг рд╣реИрдВ, рддреЛ рдЙрдиреНрд╣реЗрдВ JSON рд╕реНрдЯреНрд░рд┐рдВрдЧ рдореЗрдВ рдмрджрд▓ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдФрд░ рд▓реЙрдЧ рд╕рдВрджреЗрд╢ рдореЗрдВ рдЬреЛрдбрд╝ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рд╕рднреА рд╕рдВрдкрддреНрддрд┐рдпреЛрдВ рдХреЛ рдирд╣реАрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдПрдЧрд╛ред рд╡рд░реНрдЧ-рд▓рдХрдбрд╝рд╣рд╛рд░рд╛ рдЗрд╕ рддрд░реНрдХ рдХрд╛ рдЕрдиреБрд╕рд░рдг рдХрд░рддрд╛ рд╣реИ:
- рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд╕реНрд╡рдпрдВ (рдЧреИрд░-рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк) рдЧреБрдгреЛрдВ рдХреЛ рд▓реЗрдВред
- рдХреНрдпреЛрдВ? рдпрд╣ рдПрдХ рджреБрд░реНрд▓рдн рдорд╛рдорд▓рд╛ рд╣реИ рдЬрдм рдЖрдкрдХрд╛ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рдмрджрд▓рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕реЗ рд▓реЙрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╢рд╛рдпрдж рд╣реА рдХреЛрдИ рдорддрд▓рдм рд╣реИред
- рдЙрдирдореЗрдВ рд╕реЗ рдХреЛрдИ рднреА рдбреНрд░реЙрдк рдХрд░реЗрдВ рдЬрд┐рд╕рдореЗрдВ
function
рдкреНрд░рдХрд╛рд░ рд╣реИред
- рдХреНрдпреЛрдВ? рдЕрдзрд┐рдХрд╛рдВрд╢ рд╕рдордп
function
рдЧреБрдг this
рд╕рдВрджрд░реНрдн рдХреЛ рд╕рдВрд░рдХреНрд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рдпрдорд┐рдд рд╡рд░реНрдЧ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЗ рдмрдЬрд╛рдп рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдп рддреАрд░ рдлрд╝рдВрдХреНрд╢рди рд╣реИрдВред рдпрд╣ рдЙрди рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдХрдбрд╝реЗ рд╢рд░реАрд░ рдХреЗ рд╕рд╛рде рдЕрдкрдиреЗ рд▓реЙрдЧ рдХреЛ рдЦрд┐рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдорд╛рдпрдиреЗ рдирд╣реАрдВ рд░рдЦрддрд╛ рд╣реИред
- рдЙрдирдореЗрдВ рд╕реЗ рдХрд┐рд╕реА рдХреЛ рднреА рдЧрд┐рд░рд╛рдПрдВ рдЬреЛ рд╕рд╛рджреЗ рд╡рд╕реНрддреБ рдирд╣реАрдВ рд╣реИрдВред
- рдХреМрди рд╕реА рд╡рд╕реНрддреБрдПрдВ рд╕рд╛рджреА рд╣реИрдВ?
ClassLoggerFormatterService
рдПрдХ рд╡рд╕реНрддреБ рдХреЛ рдПрдХ рд╕рд╛рджреА рд╡рд╕реНрддреБ рдорд╛рдирддрд╛ рд╣реИ рдпрджрд┐ рдЗрд╕рдХрд╛ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк Object.prototype
рдмрд░рд╛рдмрд░ рд╣реИред - рдХреНрдпреЛрдВ? рдЕрдХреНрд╕рд░ рд╣рдо рдЕрдиреНрдп рд╡рд░реНрдЧреЛрдВ рдХреЗ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЛ рдЧреБрдгреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд░рддреЗ рд╣реИрдВ (рдЙрдиреНрд╣реЗрдВ рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдЗрдВрдЬреЗрдХреНрдЯ рдХрд░реЗрдВ)ред рдпрджрд┐ рд╣рдо рдЗрди рдирд┐рд░реНрднрд░рддрд╛рдУрдВ рдХреЗ рдХрдареЛрд░ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рд╣рдорд╛рд░реЗ рд▓реЙрдЧ рдмреЗрд╣рдж рдореЛрдЯреЗ рд╣реЛ рдЬрд╛рдПрдВрдЧреЗред
- рд╕реНрдЯреНрд░рд┐рдВрдЧ рдЬреЛ рдмрдЪрд╛ рд╣реИред
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 } } // Logs to the console before the class' construction: // 'Test.construct. Args: []. Class instance: {"prop1":42,"prop2":{"test":42}}.' const test = new Test() // Logs to the console before the method call: // 'Test.method2. Args: []. Class instance: {"prop1":42,"prop2":{"test":42}}.' test.method2() // Logs to the console after the method call: // 'Test.method2 -> done. Args: []. Class instance: {"prop1":42,"prop2":{"test":42}}. Res: 42.'
рдбрд┐рдлрд╝реЙрд▓реНрдЯ: false
рддреЛ рдХреНрдпрд╛ рд╣реБрдЖ рдЕрдЧрд░ рдЖрдк рд╕рдордЧреНрд░ рд╡рд┐рдЪрд╛рд░ рдкрд╕рдВрдж рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдХреНрдпрд╛ рдЖрдкрдХреЗ рд╕рдВрджреЗрд╢ рдЕрд▓рдЧ рддрд░рд╣ рд╕реЗ рджреЗрдЦрдирд╛ рдЪрд╛рд╣реЗрдВрдЧреЗ? рдЖрдк рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдХрд╕реНрдЯрдо рдлрд╝реЙрд░реНрдореЗрдЯрд░ рдкрд╛рд╕ рдХрд░рдиреЗ рдкрд░ рдкреВрд░реНрдг рдирд┐рдпрдВрддреНрд░рдг рд▓реЗ рд╕рдХрддреЗ рд╣реИрдВред
рдЖрдк рд╕реНрдХреНрд░реИрдЪ рд╕реЗ рдЕрдкрдирд╛ рд╕реНрд╡рдпрдВ рдХрд╛ рдлреЙрд░реНрдореЗрдЯрд░ рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВред рдкреВрд░реА рддрд░рд╣ рд╕реЗред рдлрд┐рд░ рднреА рд╣рдо рдЗрд╕ рд╡рд┐рдХрд▓реНрдк рдХреЛ рдпрд╣рд╛рдВ рдирд╣реАрдВ рд▓реЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ (рдпрджрд┐ рдЖрдк рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ, рддреЛ README рдХреЗ "рд╕реНрд╡рд░реВрдкрдг" рдЕрдиреБрднрд╛рдЧ рдХреЛ рд╕рдВрдмреЛрдзрд┐рдд рдХрд░реЗрдВ)ред
рд╕рдмрд╕реЗ рддреЗрдЬрд╝ рдФрд░, рд╢рд╛рдпрдж, рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рдХрд╛рдо рдПрдХ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдбрд┐рдлрд╝реЙрд▓реНрдЯ ClassLoggerFormatterService
рдХреЛ рдЙрдк-рд╡рд░реНрдЧ рдХрд░рдирд╛ рд╣реИ - ClassLoggerFormatterService
ред
ClassLoggerFormatterService
рдореЗрдВ рдпреЗ рд╕рдВрд░рдХреНрд╖рд┐рдд рддрд░реАрдХреЗ рд╣реИрдВ, рдЬреЛ рдЕрдВрддрд┐рдо рд╕рдВрджреЗрд╢ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдЦрдВрдб рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рд░реНрдп рдХрд░ рд░рд╣реЗ рд╣реИрдВ:
base
- рд╡рд┐рдзрд┐ рдирд╛рдо рдХреЗ рд╕рд╛рде рд╡рд░реНрдЧ рдирд╛рдо рджреЗрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг:
ServiceCats.eat
ред
operation
- рд░рд┐рдЯрд░реНрди
-> done
рдпрд╛ -> error
рдЖрдзрд╛рд░ рдкрд░ рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рдПрдХ рд╡рд┐рдзрд┐ рдХрд╛ рд╕рдлрд▓ рдирд┐рд╖реНрдкрд╛рджрди рдерд╛ рдпрд╛ рдПрдХ рддреНрд░реБрдЯрд┐ред
args
- рддрд░реНрдХреЛрдВ рдХреА рдПрдХ рдХрдбрд╝реА рд╕реВрдЪреА рд▓реМрдЯрд╛рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг:
. Args: [milk]
. Args: [milk]
ред рдпрд╣ рд╣реБрдб рдХреЗ рддрд╣рдд рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд▓рд┐рдП рддреЗрдЬ-рд╕реБрд░рдХреНрд╖рд┐рдд-рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред
classInstance
- рдПрдХ рдХрдбрд╝реЗ рд╡рд░реНрдЧ рдЙрджрд╛рд╣рд░рдг рджреЗрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг:
. Class instance: {"prop1":42,"prop2":{"test":42}}
. Class instance: {"prop1":42,"prop2":{"test":42}}
ред рдпрджрд┐ рдЖрдк рдХреНрд▓рд╛рд╕ рдЗрдВрд╕реНрдЯреЗрдВрд╕ рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рдирд╛ рдЪреБрдирддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рд╣реИ (рдпрд╣реА рдХрд╛рд░рдг рд╣реИ рдХрд┐ рдпрд╣ рд╕реНрдЯреИрдЯрд┐рдХ рддрд░реАрдХреЛрдВ рдФрд░ рдХреНрд▓рд╛рд╕ рдХрдВрд╕реНрдЯреНрд░рдХреНрд╢рди рдХреЗ рд▓рд┐рдП рд╣реИ), рддреЛ рдпрд╣ 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(), })
рд▓рд╛рдЗрд╡ рдбреЗрдореЛ
рдирд┐рд╖реНрдХрд░реНрд╖
рдХреГрдкрдпрд╛, рдЗрд╕ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓реЗрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рд╕реНрдерд╛рдкрдирд╛ рдЪрд░рдгреЛрдВ рдХрд╛ рдкрд╛рд▓рди рдХрд░рдирд╛ рдФрд░ рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рд╣реЛрдирд╛ рди рднреВрд▓реЗрдВред
рдЙрдореНрдореАрдж рд╣реИ, рдЖрдкрдиреЗ рдЕрдкрдиреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдЙрдкрдпреЛрдЧреА рдкрд╛рдпрд╛ рд╣реИред рдЕрдкрдиреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдореБрдЭрд╕реЗ рд╕рдВрд╡рд╛рдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рддрдВрддреНрд░ рдорд╣рд╕реВрд╕ рдХрд░реЗрдВ! рдореИрдВ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдХрд┐рд╕реА рднреА рдЖрд▓реЛрдЪрдирд╛ рдФрд░ рд╕рд╡рд╛рд▓реЛрдВ рдХреА рд╕рд░рд╛рд╣рдирд╛ рдХрд░рддрд╛ рд╣реВрдВред