рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐
рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд▓реЙрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓рд╛рдЗрдиреЛрдВ рдХреЛ рд▓рд┐рдЦрдиреЗ рдХреЗ рд╕рд╣реА рддрд░реАрдХреЗ рдХреЗ рд▓рд┐рдП рдЬрд╛рд╡рд╛ рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдХрд╛ рдХрд╛рдВрдЯреЗрджрд╛рд░ рдФрд░ рдпрд╛рддрдирд╛рдкреВрд░реНрдг рд░рд╛рд╕реНрддрд╛ред рдЬрд╛рд╡рд╛ рдореЗрдВ рд▓реЙрдЧрд┐рдВрдЧ рдХрд╛ рдЗрддрд┐рд╣рд╛рд╕ рдУрдкрди рд╕реЛрд░реНрд╕ рдХреА рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд░рдиреЗ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдХрд╛рдлреА рдЬрд╛рдирдХрд╛рд░реАрдкреВрд░реНрдг рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдирд┐рдЧрдореЛрдВ рдФрд░ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрдд рд╢рд╛рдорд┐рд▓ рд╣реИред рдореИрдВ рдЬрд╛рд╡рд╛ рд▓реЙрдЧрд┐рдВрдЧ рдХреЗ рдЗрддрд┐рд╣рд╛рд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд┐рддрдирд╛ рд╕рдВрднрд╡ рд╣реЛ рдЙрддрдирд╛ рдмрддрд╛рдиреЗ рдЬрд╛ рд░рд╣рд╛ рд╣реВрдВ, рд╕рд╛рде рд╣реА рдпрд╣ рд╕рдм рдХрд╣рд╛рдВ рдЖрдпрд╛ рдФрд░ рдХреИрд╕реЗ рд░рд╣рдирд╛ рд╣реИред
рд╕реНрдерд┐рддрд┐ рдХрд╛ рдореЗрд░рд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдЗрд╕ рдХрд╛рд░рдг рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХрд╛рдлреА рд╡реНрдпрдХреНрддрд┐рдкрд░рдХ рд╣реЛрдЧрд╛ рдХрд┐ рд▓реЙрдЧрд┐рдВрдЧ рд╣рдореЗрд╢рд╛ рд╕реНрд╡рд╛рдж рдХрд╛ рдорд╛рдорд▓рд╛ рд╣реИ, рдФрд░ рдореЗрд░реЗ рд╕реНрд╡рд╛рдж рдиреЗ рдореЗрд░реЗ рдЕрдкрдиреЗ, рд╡рдпрд╕реНрдХреЛрдВ рдХрд╛ рдЧрдарди рдХрд┐рдпрд╛ рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдкреВрд░реЗ рдЪрд┐рдбрд╝рд┐рдпрд╛рдШрд░ рд▓реЙрдЧрд┐рдВрдЧ рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреА рдХреБрдЫ рддрдХрдиреАрдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реАрдкреВрд░реНрдг рдирд╣реАрдВ рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рдУрдкрди рд╕реЛрд░реНрд╕ рдореЙрдбрд▓ рдореЗрдВ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреА рдиреАрддрд┐рдпреЛрдВ рдФрд░ рдордиреЛрд╡рд┐рдЬреНрдЮрд╛рди рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВред
рд╢реБрд░реБрдЖрдд
рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ рдХрд┐рд╕реА рднреА рд▓реЙрдЧрд┐рдВрдЧ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛ рдХрдо рд╕реЗ рдХрдо рдХрдВрд╕реЛрд▓ / рд▓реЙрдЧ рдлрд╛рдЗрд▓ рдХреЗ рд▓рд┐рдП рдПрдХ рд▓рд╛рдЗрди рдкреНрд░рд┐рдВрдЯ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдиреА рдЪрд╛рд╣рд┐рдПред
рд╢реБрд░реБрдЖрдд рдореЗрдВ, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ,
System.err.println
ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╕рд░реНрд╡рд▓реЗрдЯ рдПрдкреАрдЖрдИ рдХреЗ рдкрд╣рд▓реЗ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдПрдХ
log
рдлрд╝рдВрдХреНрд╢рди (рд╣рд╛рд▓рд╛рдВрдХрд┐, рдХрд╛рдлреА рдЖрджрд┐рдо) рд╢рд╛рдорд┐рд▓ рдерд╛ред
1999 рдореЗрдВ рдЕрдзрд┐рдХ рдЙрдиреНрдирдд рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХреЗ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдПрд╡рд▓реЙрди рдкреНрд░реЛрдЬреЗрдХреНрдЯ (рдФрд░ рдПрдХреНрд╕рдХреИрд▓рд┐рдмреБрд░ рдПрдВрдб рдлреЛрд░реНрдЯреНрд░реЗрд╕ рдирд╛рдордХ рд╕рдмрдкреНрд░реЛрдЬреЗрдХреНрдЯреНрд╕) рдерд╛, рдЬрд┐рд╕рдореЗрдВ рдбреАрдЖрдИ рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рдЕрд▓рд╛рд╡рд╛ рд▓реЙрдЧрдЗрдиреЗрдмрд▓реНрдб рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреА рдкреЗрд╢рдХрд╢ рдХреА рдЧрдИ рдереАред рдПрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рдЬрд┐рд╕рдиреЗ рдЦреБрдж рдХреЛ рд▓реЙрдЧрдЗрдиреЗрдХреНрд╕реНрдЯ рдШреЛрд╖рд┐рдд рдХрд┐рдпрд╛ рдерд╛ рдЙрд╕реЗ рдЗрдВрдЬреЗрдХреНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ (рдореИрдВ рдбреАрдЖрдИ рдХреЗ рд╕рд╛рде рдЕрдкрдиреЗ рд╕рдВрдмрдВрдз рдкрд░ рдЬреЛрд░ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП "рдЗрдВрдЬреЗрдХреНрд╢рди" рдХреЗ рдмрдЬрд╛рдп рдЗрд╕ рд╢рдмреНрдж рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ), рдПрдХ рдкреНрд░рдХрд╛рд░ рдХрд╛ рд▓реЙрдЧрд░, рдЬрд╣рд╛рдВ рдЖрдк рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ: рдП) рд▓рд╛рдЗрдиреЗрдВ рдмреА) рдЕрдкрд╡рд╛рджред рдЙрд╕ рд╕рдордп рдпрд╣ рджреГрд╖реНрдЯрд┐рдХреЛрдг рддрд╛рдЬрд╛ рдФрд░ рдЕрднрд┐рдирд╡ рд▓рдЧ рд░рд╣рд╛ рдерд╛, рд▓реЗрдХрд┐рди рдЖрдзреБрдирд┐рдХ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ рдпрд╣ рд╢реБрджреНрдз рдореВрдврд╝рддрд╛ рдФрд░ рдЕрддрд┐-рдЗрдВрдЬреАрдирд┐рдпрд░рд┐рдВрдЧ рд╣реИред рд▓реЙрдЧрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП DI рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рдорддрд▓рдм рдирд╣реАрдВ рд╣реИ, рдФрд░ рдЗрд╕ рд▓рдХрдбрд╝рд╣рд╛рд░реЗ рдХрд╛ рдПрдХ рд╕реНрдерд┐рд░ рдЙрджрд╛рд╣рд░рдг рдЦреБрдж рд╕рднреА рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рд╣реЛрдЧрд╛ред рдПрд╡рд▓реЙрди рдореЗрдВ, рдореБрдЭреЗ рдпрд╣ рд╕реЛрдЪрдирд╛ рдерд╛ рдХрд┐ рдЗрд╕ рд╢рд╛рдкрд┐рдд рд▓реЙрдЧрд░ рдХреЛ рдХрд╣рд╛рдБ рдмрдЪрд╛рдпрд╛ рдЬрд╛рдП рдФрд░ рдпрджрд┐ рдбреАрдЖрдИ (рдХрдВрдЯреЗрдирд░ рджреНрд╡рд╛рд░рд╛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рддреЛ рдХреНрдпрд╛ рдХрд░рдирд╛ рд╣реИ, рдФрд░ рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕рдореЗрдВ рд▓реЙрдЧ рдЗрди рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред
1999 рдХреЗ рдЖрд╕рдкрд╛рд╕, рдПрдХ рдирдИ рдкреАрдврд╝реА рдХрд╛ рдкреБрд╕реНрддрдХрд╛рд▓рдп рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИ - log4jред рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрд╛ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рдЖрдИрдмреАрдПрдо рджреНрд╡рд╛рд░рд╛ рд╡рд┐рдХрд╕рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ (рдЙрд╕ рдпреБрдЧ рдореЗрдВ рдЬрдм рдмреНрд▓реВ рд╡рд┐рд╢рд╛рд▓ рдЬрд╛рд╡рд╛ рдХреЛ OS / 2 рдореЗрдВ рдирд┐рдЪреЛрдбрд╝рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рдерд╛), рддрдм ASF рдиреЗ рдмреИрдЯрди рдХреЛ рдЙрдард╛рдпрд╛ред рдЙрддреНрдкрд╛рдж рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╕реЛрдЪрд╛ рдЧрдпрд╛ рдерд╛ рдФрд░ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЬрд░реВрд░рддреЛрдВ рдкрд░ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдореБрдЭреЗ рдпрд╣ рдХрд╣рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдЙрд╕ рд╕рдордп рддрдХ рдЬрд╛рд╡рд╛ рдореЗрдВ рд╕рд░реНрд╡рд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗрд╡рд▓ рдПрдХ рд╡рд░реНрд╖ рдХреЗ рдереЗ, рдФрд░ рд▓реЙрдЧрд┐рдВрдЧ рд╣рдореЗрд╢рд╛ рд╕рд░реНрд╡рд░ рдкрд░ рдорд╛рдВрдЧ рдореЗрдВ рдереАред рдЗрд╕ рд╕рдордп рдХреЗ рджреМрд░рд╛рди, рдЬрд╛рд╡рд╛ рд╕рдореБрджрд╛рдп рдзреАрд░реЗ-рдзреАрд░реЗ рд╕рдордЭрдиреЗ рд▓рдЧрд╛ рдХрд┐ рдЙрдиреНрд╣реЗрдВ рдХреНрдпрд╛ рдФрд░ рдХреИрд╕реЗ рдЪрд╛рд╣рд┐рдПред
log4j рдиреЗ рдПрдХ рд▓рдХрдбрд╝рд╣рд╛рд░рд╛ рдпрд╛
рд╢реНрд░реЗрдгреА (рдпрд╛рдиреА рдЙрд╕ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛ рдХреНрд╖реЗрддреНрд░ рдЬреЛ рд▓реЙрдЧ рдореЗрдВ рд▓рд┐рдЦрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИ) рдХреА рдЕрд╡рдзрд╛рд░рдгрд╛ рдХреЛ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рд╣реИ, рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд▓реЙрдЧ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпрд╛рдБ рдЬреЛ рддрдерд╛рдХрдерд┐рдд
рдРрдкреЗрдВрдбрд░реНрд╕ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддреА рд╣реИрдВ , рдФрд░ рд░рд┐рдХреЙрд░реНрдбреНрд╕ (
рд▓реЗрдЖрдЙрдЯ ) рдХреЛ рдкреНрд░рд╛рд░реВрдкрд┐рдд рдХрд░рддреА рд╣реИрдВред
рд▓реЙрдЧ 4 рдЬреЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдХреМрди рд╕реЗ рдРрдкреНрдкреЗрдВрдбрд░реНрд╕ рдХрд┐рди рд╢реНрд░реЗрдгрд┐рдпреЛрдВ рд╕реЗ рдЬреБрдбрд╝реЗ рд╣реИрдВ рдФрд░
рд▓реЙрдЧ рд╕реНрддрд░ рдХреЗ рд╕рдВрджреЗрд╢ рдкреНрд░рддреНрдпреЗрдХ рдРрдкреЗрдВрдбрд░ рдореЗрдВ рдЖрддреЗ рд╣реИрдВред
Log4j рдХреА рдЖрдзрд╛рд░рд╢рд┐рд▓рд╛ рд╢реНрд░реЗрдгрд┐рдпреЛрдВ рдХреА рд╢реНрд░реЗрдгреА рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдк
org.hibernate
рд╕реЗ рд╕рднреА рд╕рдВрджреЗрд╢ рд▓реЙрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░
org.hibernate.type
рд╕реЗ рд╕рдм рдХреБрдЫ рдореНрдпреВрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдХреБрдЫ рд╕рдордп рдмрд╛рдж, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рд╢реНрд░реЗрдгрд┐рдпреЛрдВ рдХреЗ рдкрджрд╛рдиреБрдХреНрд░рдо рдФрд░ рдЖрд╡реЗрджрди рдореЗрдВ рдкреИрдХреЗрдЬ рдкрджрд╛рдиреБрдХреНрд░рдо рдХреЗ рдорд┐рд▓рд╛рди рдХреА рдкреНрд░рдерд╛ рд╕реНрдерд╛рдкрд┐рдд рдХреА рдЧрдИред
рд╢реНрд░реЗрдгрд┐рдпреЛрдВ рдХрд╛ рдкрджрд╛рдиреБрдХреНрд░рдо рдЖрдкрдХреЛ рдЕрдирд╛рд╡рд╢реНрдпрдХ рд╕рдВрджреЗрд╢реЛрдВ рдХреЛ рдХреБрд╢рд▓рддрд╛ рд╕реЗ рдХрд╛рдЯрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП log4j рдиреЗ рдмрд╣реБрдд рдЪрд╛рд▓рд╛рдХреА рд╕реЗ рдХрд╛рдо рдХрд┐рдпрд╛ред рд╡реИрд╕реЗ, рд▓реЙрдЧрд░ рдХреЗ рд▓рд┐рдП рд╕рд┐рджреНрдзрд╛рдВрдд рдмрд╛рдд рдЗрддрдиреА рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ рдЧрддрд┐ рдирд╣реАрдВ рд╣реИ рдЬрд┐рддрдирд╛ рдХрд┐ рдЕрдирд╛рд╡рд╢реНрдпрдХ рдХреА рдлрд╝рд┐рд▓реНрдЯрд░рд┐рдВрдЧ рдЧрддрд┐ (рдФрд░ рдЖрдорддреМрд░ рдкрд░ 90% рд╕реЗ рдЕрдзрд┐рдХ рдЕрдирд╛рд╡рд╢реНрдпрдХ) рдФрд░ рд╕реНрд╡рд░реВрдкрдгред
Log4j рдореЗрдВ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд╕рд┐рджреНрдзрд╛рдВрдд рдЕрдиреНрдп рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ рдХрд╛рдлреА рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдкреЛрд░реНрдЯ рдХрд┐рдП рдЧрдП рд╣реИрдВ: log4cxx, log4net (рдФрд░ рддрд╛рдЬрд╛ рд╢рд╛рд╡рдХ - log4php)ред рдкрд╛рдпрдерди 2.x рдореЗрдВ рдорд╛рдирдХ рд▓реЙрдЧрд┐рдВрдЧ рдкреИрдХреЗрдЬ рдПрдХ рдкреБрди: рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд▓реЙрдЧ 4j (рдЕрдиреНрдп рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рдПрдХ рдЫреЛрдЯреЗ рд╕реЗ рдЬреЛрдбрд╝ рдХреЗ рд╕рд╛рде) рд╣реИред
рдЗрд╕рд▓рд┐рдП, рд╣рдо рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рдмрддрд╛рддреЗ рд╣реИрдВред рд╕рдлрд▓ рд╡рд╛рд╕реНрддреБрдХрд▓рд╛, рд╕реНрдкрд╖реНрдЯ рд╡рд┐рдиреНрдпрд╛рд╕ рдпреЛрдЬрдирд╛,
рдЕрд╕рдлрд▓-рд╕реБрд░рдХреНрд╖рд┐рдд рд╕рд┐рджреНрдзрд╛рдВрдд - рдХреНрдпреЛрдВ рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рдЕрджреНрднреБрдд рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЛ рдордВрдЪ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ?
рдЬрд╛рд╡рд╛ рд▓реЙрдЧрд┐рдВрдЧ рдПрдкреАрдЖрдИ
рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рд╕рдм рдХреБрдЫ рдЕрдЬреАрдм рдирд┐рдХрд▓рд╛ред IBM, рдЬрд┐рд╕рдХреА рдЧрд╣рд░рд╛рдИ рдореЗрдВ log4j рдЙрддреНрдкрдиреНрди рд╣реБрдЖ, рдирдП JSR47 (рдЬрд╛рд╡рд╛ рд▓реЙрдЧрд┐рдВрдЧ рдПрдкреАрдЖрдИ) рдХреЗ рдЧрдарди рдХреЗ рдкреНрд░рд╢реНрдиреЛрдВ рдореЗрдВ рдмрд╣реБрдд рддреЗрдЬ рдирд┐рдХрд▓рд╛ред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рдХреЙрдорд░реЗрдб рдЧреНрд░рд╛рд╣рдо рд╣реИрдорд┐рд▓реНрдЯрди, рдЬреЛ JSR47 рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИрдВ, рдиреЗ рдЖрдзрд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВ log4j
рдирд╣реАрдВ рд▓реЗрдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛, рд▓реЗрдХрд┐рди
рдореВрд▓ рдЖрдИрдмреАрдПрдо рд▓реЙрдЧрд┐рдВрдЧ рдЯреВрд▓рдХрд┐рдЯ ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд▓реЙрдЧрд┐рдВрдЧ рдЯреВрд▓рдХрд┐рдЯ рдХреЛ рдЗрд╕рдХреЗ рдкреВрд░реНрдг рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛: рди рдХреЗрд╡рд▓ рд╕рднреА рдореБрдЦреНрдп рд╡рд░реНрдЧреЛрдВ рдХреЗ рдирд╛рдо, рдмрд▓реНрдХрд┐ рдЙрдирдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рднреА; рдЙрдиреНрд╣реЛрдВрдиреЗ рдХреЛрдб рдХреЛ рдпрдерд╛рд╕рдВрднрд╡ рдХрдо рд╕реЗ рдХрдо рдЦрддреНрдо рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рдЬрд╛рд╣рд┐рд░рд╛ рддреМрд░ рдкрд░ рдордВрдЪ рдХреА рдЕрдЧрд▓реА рд░рд┐рд▓реАрдЬ рдХреЛ рдкрдХрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдПред рд╣рд╛рд▓рд╛рдБрдХрд┐, рд╡реИрдЪрд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ рдпрд╣ log4j рд╕реЗ рдХрд╛рдлреА рдорд┐рд▓рддрд╛-рдЬреБрд▓рддрд╛ рдерд╛, рдХреЗрд╡рд▓ рдРрдкреЗрдВрдбрд░реНрд╕ рдХреЗ рдмрдЬрд╛рдп рдЗрд╕реЗ рд╣реИрдВрдбрд▓рд░ рдХрд╣рд╛ рдЬрд╛рддрд╛ рдерд╛, рдФрд░ рд▓реЗрдЖрдЙрдЯ рдХреЗ рдмрдЬрд╛рдп рдлреЙрд░реНрдореИрдЯрд░ рдерд╛ред
рдЪреВрдВрдХрд┐ JSR47 рдХрд╛ рдореБрдЦреНрдп рдЙрджреНрджреЗрд╢реНрдп
рдПрдкреАрдЖрдИ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдирд╛ рдерд╛
, рдФрд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдирд╣реАрдВ , рдХреЗрд╡рд▓ 4 рдЙрдкрд▓рдмреНрдз рдереЗ (рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдореЗрдВ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ) рдЖрдЙрдЯрдкреБрдЯ рдЯреВрд▓ (log4j рдореЗрдВ 10 рд╕реЗ рдЕрдзрд┐рдХ), рдФрд░ рдлреЙрд░реНрдореЗрдЯрд░реНрд╕ рдЗрддрдиреЗ рдЦрд░рд╛рдм рдереЗ рдХрд┐ рдЙрдиреНрд╣реЗрдВ рд▓рдЧрднрдЧ рддреБрд░рдВрдд рддреИрдпрд╛рд░ рдХрд░рдирд╛ рдкрдбрд╝рд╛, рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рддреИрдпрд╛рд░ рдереЗ рдкрд░реНрдпрд╛рдкреНрдд рдирд╣реАрдВ рд╣реИред JSR47 рдиреЗ .properties рдХреЗ рд░реВрдк рдореЗрдВ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рд╕реБрдЭрд╛рд╡ рджрд┐рдпрд╛, рдФрд░ рдпрд╣ рдХреЛрд╖реНрдардХ рдореЗрдВ рдиреЛрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдХрд┐ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕рдм рдХреБрдЫ рд╡рд░реНрдгрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдЬрдм рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдЬрдЯрд┐рд▓ рдерд╛, рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЛ рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рд░реВрдк рд╕реЗ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдХреЛрдб рд▓рд┐рдЦрдирд╛ рдлрд┐рд░ рд╕реЗ рдЖрд╡рд╢реНрдпрдХ рдерд╛, рдХреНрдпреЛрдВрдХрд┐
.properties
рдХреЗ рд░реВрдк рдореЗрдВ
.properties
рдЗрд╕рдХрд╛ рд╡рд┐рдиреНрдпрд╛рд╕
.properties
рдирд╣реАрдВ рд╣реИред
рдпрд╣ рдХрд╣рдирд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ JSR47 рдкреНрд░рджрд░реНрд╢рди рдореЗрдВ рд╣рд╛рд░ рдЬрд╛рддрд╛ рд╣реИред рдХреБрдЫ рд╕реНрдерд╛рдиреЛрдВ рдкрд░, рдЙрдиреНрд╣реЛрдВрдиреЗ рд╕реНрдореГрддрд┐ рдХреЛ рдЕрдкрдиреЗ рд╡рд┐рдиреНрдпрд╛рд╕ рдХреЗ рдПрдХ рд╡рд┐рд╢реЗрд╖ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХреЛ рдмрдирд╛рдП рд░рдЦрддреЗ рд╣реБрдП log4j рдХреЛ рдкрдЫрд╛рдбрд╝ рджрд┐рдпрд╛ (рдЬреЛ рд╕рдВрдпреЛрдЧрд╡рд╢, рдЙрд╕реА рд╕рдордп рдЗрд╕ рдмрд╣реБрдд рд╡рд┐рдиреНрдпрд╛рд╕ рдХреЛ рдЬрдЯрд┐рд▓ рдХрд░рддрд╛ рд╣реИ)ред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣ рдирд┐рдХрд▓рд╛, JSR47 рдиреЗ рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ рддрдерд╛рдХрдерд┐рдд рдХреЙрд▓рд░ рд╕реВрдЪрдирд╛ рдПрдХрддреНрд░ рдХреА, рдЕрд░реНрдерд╛рдд "рдпрд╣ рд╕рдВрджреЗрд╢ рдХрд╣рд╛рдВ рд╕реЗ рдЖрддрд╛ рд╣реИред" рдХреЙрд▓рд░ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдПрдХ рдорд╣рдВрдЧрд╛ рдСрдкрд░реЗрд╢рди рд╣реИ, рдпрд╣ рдореВрд▓ рдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЖрдЧреЗ рдмрдврд╝рддрд╛ рд╣реИред Log4j рдХреЗ рдЕрдиреБрднрд╡реА рдЪрд╛рдЪрд╛рдУрдВ рдХреЛ рдпрд╣ рдкрддрд╛ рдерд╛, рдЗрд╕рд▓рд┐рдП рдЙрдиреНрд╣реЛрдВрдиреЗ рдЗрд╕ рдЕрд╡рд╕рд░ рдХреЛ "рдмреЗрд╣рддрд░ рдЗрд╕реЗ рдЪрд╛рд▓реВ рдирд╣реАрдВ" рдХреЗ рд╕рд╛рде рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ред
Log4j рдХреЗ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдиреЗ рдПрдХ рдЦреБрд▓реА
рдпрд╛рдЪрд┐рдХрд╛ рджрд╛рдпрд░ рдХреА , рдЬрд╣рд╛рдВ рдЙрдиреНрд╣реЛрдВрдиреЗ "рдЕрд╕реЗрдВрдмрд▓реА рд▓рд╛рдЗрди рд╕реЗ JSR47 рдХреЛ рд╣рдЯрд╛рдиреЗ" рдХреА рдорд╛рдВрдЧ рдХреА, рдЬрдмрдХрд┐ рдпрд╣ рдЕрднреА рддрдХ рдордВрдЪ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рдирд╣реАрдВ рдерд╛ред рдпрд╛рдЪрд┐рдХрд╛ рдкрд░ 100 рд╕реЗ рдЕрдзрд┐рдХ рд▓реЛрдЧреЛрдВ рдиреЗ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХрд┐рдП ... рд╣рд╛рд▓рд╛рдВрдХрд┐, рдмрд╣реБрдд рджреЗрд░ рд╣реЛ рдЪреБрдХреА рдереАред рдЬреЗрдбреАрдХреЗ рдХреА рдЕрдЧрд▓реА рд░рд┐рд▓реАрдЬ рдХреЛ рдордВрдЬреВрд░реА рджреЗ рджреА рдЧрдИ рдФрд░ рдордВрдЪ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдЕрд▓реНрдкрд╡рд┐рдХрд╕рд┐рдд
java.util.logging
рдпрд╛ рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ JUL рдХреЗ рд╕рд╛рде рдмрд╣ рдЧрдпрд╛ред рдирдпрд╛ рд▓реЙрдЧрд┐рдВрдЧ рдЗрддрдирд╛ рдЕрд╡рд┐рдХрд╕рд┐рдд рдФрд░ рдЕрд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдерд╛ рдХрд┐ рдЙрдиреНрд╣реЛрдВрдиреЗ рдЗрд╕реЗ рдХреЗрд╡рд▓ рдХреБрдЫ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕рд░реНрд╡рд░реЛрдВ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ (рдЙрдирдореЗрдВ рд╕реЗ рд░рд╛рд▓ рдФрд░ рдЬреЗрдЯреНрдЯреА)ред рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╕рди рдиреЗ рдпрд╛рдЪрд┐рдХрд╛ рдХрд╛ рдЬрд╡рд╛рдм рджрд┐рдпрд╛ рдФрд░ рдореВрд▓ JSR47 рдХреА рдЕрдзрд┐рдХрд╛рдВрд╢ рдкреНрд░рдореБрдЦ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рдзреАрд░реЗ-рдзреАрд░реЗ рд╕рдорд╛рдкреНрдд рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ред рдлрд┐рд░ рднреА, рдпреЗ рд╣реЗрд░рдлреЗрд░ рд▓рдХрдбрд╝реА рдХреЗ рдкреБрд▓ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рддрд░рд╣ рдЕрдзрд┐рдХ рдереЗ, рдЬреЛ рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рдЗрд╕ рдкреБрд▓ рдХреЛ рдкреНрд░рдмрд▓рд┐рдд рдХрдВрдХреНрд░реАрдЯ рдирд╣реАрдВ рдмрдирд╛рдПрдВрдЧреЗред Log4j рдбреЗрд╡рд▓рдкрд░реНрд╕ рдиреЗ рд╕реВрд░реНрдп рдХреА рдУрд░ рдЭреБрдХрд╛рд╡ рдХрд┐рдпрд╛, рдзреНрдпрд╛рди рджрд┐рдпрд╛, рд╣рд╛рд▓рд╛рдВрдХрд┐, JUL рдХреА рд╡рдХреНрд░рддрд╛ рдХреА рдбрд┐рдЧреНрд░реА рдЕрднреА рднреА рдХрд╛рдлреА рдЕрдзрд┐рдХ рд╣реИред рдЕрдиреНрдп рдмрд╛рддреЛрдВ рдХреЗ рдЕрд▓рд╛рд╡рд╛, JDK 1.4 рд▓рд╛рдЗрд╕реЗрдВрд╕
рдиреЗ рд▓реЙрдЧ 4j
рдХреЛ JUL рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ
рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рджреА ред Log4j рдХреЗ рд▓рд┐рдП рдЕрдВрддрд┐рдо рдЯреНрд░реЗрди рдЪрд▓реА рдЧрдИ рд╣реИред
рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рд▓реЙрдЧ рд▓реЗрдЦрдХреЛрдВ (рдпрд╛рдиреА рд╣реИрдВрдбрд▓рд░) рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдореЗрдВ рдЕрд╕рдорд░реНрде, JUL рдиреЗ рд▓реЙрдЧ рд╕реНрддрд░ рдХреЗ рдПрдХ рдЕрд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд╕рдВрдЦреНрдпрд╛ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдХреЗ рджрд┐рдЦрд╛рдпрд╛ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕рдВрджреЗрд╢реЛрдВ рдХреЛ рдбреАрдмрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд╣рд▓реЗ рд╕реЗ рд╣реА 3 рд╕реНрддрд░ рдереЗ - FINE, FINER рдФрд░ FINESTред рдпрд╣ рд╕рдм рджреЗрдЦрдХрд░, рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рдЕрдХреНрд╕рд░ рд╕рдордЭ рдореЗрдВ рдирд╣реАрдВ рдЖрдпрд╛ рдХрд┐ рддреАрди рд╕реНрддрд░реЛрдВ рдореЗрдВ рд╕реЗ рдХреМрди рд╕рд╛, рдЗрд╕реЗ рд▓рд╛рдирдд рд╣реИ, рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдЬрд╛рд╡рд╛ рд╕рдореБрджрд╛рдп рд▓реЛрдХрдкреНрд░рд┐рдп, рд╕реНрдерд┐рд░ рдФрд░ рд╡рд┐рдХрд╛рд╕рд╢реАрд▓ log4j рдХреЗ рд╕рдорд╛рдирд╛рдВрддрд░ "рдорд╛рдирдХ" рдХреЗ рдЙрджреНрднрд╡ рд╕реЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрд╕реНрдд-рд╡реНрдпрд╕реНрдд рдерд╛ред рдХрд┐рд╕реА рдХреЛ рд╕рдордЭ рдирд╣реАрдВ рдЖ рд░рд╣рд╛ рдерд╛ рдХрд┐ рджреЛрдиреЛрдВ рдореЗрдВ рд╕реЗ рдХреМрди рдХрд┐рд░рд╛рдпреЗрджрд╛рд░ рд╣реИред рдЕрдХреНрд╕рд░ рдРрд╕реА рд╕реНрдерд┐рддрд┐ рд╣реЛрддреА рдереА рдЬрдм рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдХрдИ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдЗрдХрдЯреНрдареЗ рд╣реЛрддреЗ рдереЗ, рдЬрд┐рдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдЕрдкрдиреА рд▓реЙрдЧрд┐рдВрдЧ рдФрд░ рдЕрдкрдиреА рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рдереЗ, рдЕрдкрдиреА рд▓реЙрдЧ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрд▓рдЧ рддрд░реАрдХреЗ рд╕реЗ рд░рд┐рдХреЙрд░реНрдб рдХрд░рддреЗ рдереЗред
рдмреЗрд╢рдХ, рд╕рдореБрджрд╛рдп рдиреЗ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ред
рд░реИрдкрд┐рдб рдорд╣рд╛рдорд╛рд░реА рд╢реБрд░реВ рд╣реЛ рдЧрдИ рд╣реИред рдпрд╛, рдореИрдВ рдПрдХ рдорд╣рд╛рдорд╛рд░реА рднреА рдХрд╣реВрдВрдЧрд╛ред
рдЖрд╡рд░рдг рдирд░рдХ
рдЬрдм рдЖрдк рдХрдИ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЛ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ рдФрд░ рдЙрдирдХреЗ рд▓реЙрдЧ рдХреЛ рдПрдХ рдкреВрд░реЗ рдореЗрдВ рд╕рдВрдпреЛрдЬрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ (рдФрд░ рдХреЛрдб рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ), рддреЛ рдЗрд╕реЗ рдПрдбреЙрдкреНрдЯрд░ рдХрд╣рд╛ рдЬрд╛рдПрдЧрд╛ред JUL рдПрдбреЗрдкреНрдЯрд░ log4j рдореЗрдВ рд▓рд┐рдЦреЗ рдЧрдП рдереЗ рдФрд░ рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрддред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдХрд╛рд░реНрдпрд╛рддреНрдордХ рдПрдбреЗрдкреНрдЯрд░ "рдХрдо рд╕реЗ рдХрдо рд╕рд╛рдорд╛рдиреНрдп рдПрдХрд╛рдзрд┐рдХ" рд╣реИрдВред рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЬрдм рд╕рдВрджрд░реНрдн рд╕рдорд░реНрдерди (NDC рдФрд░ MDC) log4j рдореЗрдВ рджрд┐рдЦрд╛рдИ рджрд┐рдпрд╛, рддреЛ рдпрд╣ JUL рдореЗрдВ рдЖрдзрд╛рди рдХреЗ рджреМрд░рд╛рди рдЦреЛ рдЧрдпрд╛ рдерд╛ред рдЗрд╕рд╕реЗ рднреА рдмрджрддрд░, JUL рдиреЗ рдХреЗрд╡рд▓ JDK 1.4 рдХреЗ рдмрд╛рдж рд╕реЗ рдХрд╛рдо рдХрд┐рдпрд╛, рдЬрдмрдХрд┐ рдПрдХ рдЕрд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдПрдВрдЯрд░рдкреНрд░рд╛рдЗрдЬрд╝ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЕрднреА рднреА 1.3 рдкрд░ рдмреИрдареЗред рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рд╕рдореБрджрд╛рдп рдПрдХ "рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдорд╛рдирдХ" рдмрдирд╛рдиреЗ рдХреЗ рд╡рд┐рдЪрд╛рд░ рд╕реЗ рдЧреНрд░рд╕реНрдд рд╣реЛ рдЧрдпрд╛ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рд╣рд░ рдХреЛрдИ рдПрдХ рд╕рд╛рде рдХрд░рддрд╛ рдерд╛ рдФрд░ рд╡рд╣ рдХрднреА рднреА, рдХрд╣реАрдВ рднреА рдХрд╛рдо рдХрд░реЗрдЧрд╛ред
2002 рдХреЗ рдЖрд╕рдкрд╛рд╕, рдЬрдХрд╛рд░реНрддрд╛ рд╕рдореВрд╣ рд╕реЗ рдХреЙрдордиреНрд╕-рд▓реЙрдЧрд┐рдВрдЧ (JCL = рдЬрдХрд╛рд░реНрддрд╛ рдХреЙрдордиреНрд╕ рд▓реЙрдЧрд┐рдВрдЧ) рдирд╛рдордХ рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдирд┐рдХрд▓реАред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдпрд╣ рдЙрд╕ рд╕рдордп рдореМрдЬреВрдж рд╕рднреА рд▓реЙрдЧрд┐рдВрдЧ рдЯреВрд▓ рдХреЗ рд▓рд┐рдП рдПрдХ рдЖрд╡рд░рдг рдерд╛ред рдпрд╣ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЛ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рддрд╛рдХрд┐ рд╡реЗ рдПрдХ рдЖрд╡рд░рдг (
Log
рдирд╛рдордХ рдПрдХ рдЗрдВрдЯрд░рдлрд╝реЗрд╕) рдореЗрдВ рдмрджрд▓ рдЬрд╛рдПрдВ, рдЬреЛ рдПрдХ "рдЙрдкрдпреБрдХреНрдд" рд▓реЙрдЧрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдХрд╛ рдЪрдпрди рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЦреБрдж рд╕реЗ рдЬреБрдбрд╝рд╛ рд╣реЛрддрд╛ рд╣реИред рд░реИрдкрд░ рдХрд╛рд░реНрдпрд╛рддреНрдордХ рд░реВрдк рд╕реЗ рдЦрд░рд╛рдм рдерд╛ рдФрд░ рдореМрдЬреВрджрд╛ рд▓реЙрдЧрд┐рдВрдЧ рдЯреВрд▓ рдореЗрдВ рдХреЛрдИ рдЬреЛрдбрд╝ рдирд╣реАрдВ рдерд╛ред
рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЙрдкрдпреБрдХреНрдд рд▓реЙрдЧрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдХреЛ рдХреИрд╕реЗ рдЪреБрдирд╛ рдЧрдпрд╛? рд▓реЗрдХрд┐рди рдпрд╣ рд╕рдмрд╕реЗ рджрд┐рд▓рдЪрд╕реНрдк рд╣реИред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдЖрдк рдЗрд╕реЗ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдПрдХ рд╡рд┐рд╢реЗрд╖
commons-logging.properties
рдлрд╝рд╛рдЗрд▓ рдХреЛ CLASSPATH рдореЗрдВ рд░рдЦрдХрд░ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рджреВрд╕рд░реЗ, рдПрдХ рдкреНрд░рдгрд╛рд▓реА рд╕рдВрдкрддреНрддрд┐ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ (рдЬреЛ, рдЬрд╛рд╣рд┐рд░ рд╣реИ, рдХреЛрдИ рднреА рдирд╣реАрдВ рдХрд░реЗрдЧрд╛)ред рддреАрд╕рд░реА рдмрд╛рдд, рдЕрдЧрд░ CLASSPATH рдореЗрдВ рд▓реЙрдЧ 4j рдХрд╛ рдХрд╣реАрдВ рдкрддрд╛ рд▓рдЧрд╛рдпрд╛ рдЧрдпрд╛ рдерд╛, рддреЛ рдпрд╣ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд╕рдХреНрд░рд┐рдп рд╣реЛ рдЧрдпрд╛ рдерд╛ред рдЕрдиреНрдп рд╕рднреА рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рдЙрд╕реА рддрд░рд╣ рд╕реЗ рдЦреЛрдЬрд╛ рдЧрдпрд╛ рдерд╛, рдкрд╣рд▓реЗ рд╡рд╛рд▓рд╛ рд╣рдореЗрд╢рд╛ рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рдерд╛ред
рд╕реБрдВрджрд░! рдареАрдХ рд╣реИ, рдпрд╣реА рд╣реИ,
рдпрд╣ рдЕрдЪреНрдЫрд╛
рд╣реЛрдЧрд╛ рдпрджрд┐ рджреБрдирд┐рдпрд╛ рдХреЗ рд╕рднреА рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рдХреЙрдордиреНрд╕-рд▓реЙрдЧрд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рддрдм рдЖрдк JAR рдХреЛ рд╕реБрд░рдХреНрд╖рд┐рдд рд░реВрдк рд╕реЗ рдПрдХрддреНрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрдиреНрд╣реЗрдВ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕рд░реНрд╡рд░ рдореЗрдВ рдбрд╛рд▓ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рд╡рд╣рд╛рдВ JCL рдЗрд╕ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕рд░реНрд╡рд░ рдФрд░ рд╡реЙрдЗрд▓рд╛ рдХреЗ рд▓реЙрдЧрд┐рдВрдЧ рдХреЛ рдЪреБрди рд▓реЗрдЧрд╛!
рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣ рдирд┐рдХрд▓рд╛, рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдХрд╛ рдПрдХ рдЧреБрдЪреНрдЫрд╛ рдЖрдорддреМрд░ рдкрд░ "рдЙрдирдХреЗ рдбреЗрд╡рд▓рдкрд░ рдХреА рдкрд╕рдВрджреАрджрд╛ рд▓реЙрдЧрд┐рдВрдЧ" рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдПрдХ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдордирдорд╛рдирд╛ рдкреБрд╕реНрддрдХрд╛рд▓рдп, рдПрдХ рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рд░реВрдк рдореЗрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, log4j рдХреЛ рдЦреАрдВрдЪ рд╕рдХрддрд╛ рд╣реИ, рдЬреЛ рдЗрд╕ рдкреНрд░рдХрд╛рд░ CLASSPATH рдореЗрдВ рдЖрддрд╛ рд╣реИ рдФрд░ log4j рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рд░реВрдк рд╕реЗ JCL рдХреЛ рд╕реНрд╡рд┐рдЪ рдХрд░рддрд╛ рд╣реИред рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐
commons-logging.properties
рд╕рд╛рде рднреА рдмрджрддрд░ред рдпрджрд┐ рдХреЛрдИ рднреА рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдЗрд╕реЗ рдЕрдкрдиреЗ JAR рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрддрд╛ рд╣реИ, рддреЛ рдЬрдм рдЖрдк рдЗрд╕ JAR рдХреЛ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рд╕реНрд╡рдпрдВ рд╕рдордЭ рдЬрд╛рддреЗ рд╣реИрдВ, рд▓рд┐рдЦрдирд╛ рдЦреЛ рдЧрдпрд╛ рд╣реИред рд╕реНрдерд┐рддрд┐ рдХреА рдПрдХ рд╡рд┐рд╢реЗрд╖ рд╡рд┐рдХреГрддрд┐ рдЗрд╕ рддрдереНрдп рд╕реЗ рджреА рдЧрдИ рдереА рдХрд┐ рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рдордЭ рд╕реЗ рдмрд╛рд╣рд░ рдерд╛ рдЬрд┐рд╕рдореЗрдВ рд╕реЗ рдЬреЗрдПрдЖрд░ рд╕рдВрдХреНрд░рдордг рдЖрдпрд╛ рдерд╛ред рдХрднреА-рдХрднреА рдЗрд╕рдиреЗ рд╕рднреА JAR рдХреЛ рд╡рд░реНрдгрд╛рдиреБрдХреНрд░рдо рдореЗрдВ рдХреНрд░рдордмрджреНрдз рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХреАред рдХрднреА-рдХрднреА рдПрдХ рдХрдмрд╛рдбрд╝ред
рд▓реЙрдЧрд┐рдВрдЧ рдХреА рдкрд╕рдВрдж рдХреА рдкреВрд░реА рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рддрддрд╛ рдЬреЗрд╕реАрдПрд▓ рдХреА рдореБрдЦреНрдп рдФрд░ рдмрд╣реБрдд рд╣реА рдордЬреЗрджрд╛рд░ рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реИред Log4j рд╕рдореВрд╣
рдиреЗ рдХреЙрдордиреНрд╕-рд▓реЙрдЧрд┐рдВрдЧ рдПрдкреАрдЖрдИ рдХреЛ рдЕрдкрдирд╛рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдПрдХ
рдмрд╛рд░ рдлрд┐рд░ рд╕реЗ рдЧреБрд╕реНрд╕реЗ рдореЗрдВ
рд╕реЛрдЪреЛ рд▓реЗрдЦ рдореЗрдВ рд╡рд┐рд╕реНрдлреЛрдЯ рдХрд┐рдпрд╛, рдЬрд┐рд╕рдиреЗ рдорд╣рд╛рдорд╛рд░реА рдХреЛ рд░реЛрдХрдиреЗ рдФрд░ рдореМрдЬреВрджрд╛ рд╕рдорд╛рдзрд╛рди рдХреЛ рдкрд░рд┐рд╖реНрдХреГрдд рдХрд░рдиреЗ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░рдиреЗ рдХрд╛ рд╕реБрдЭрд╛рд╡ рджрд┐рдпрд╛, log4jред
рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдмрд╣реБрдд рджреЗрд░ рд╣реЛ рдЪреБрдХреА рдереАред рд╕реИрдХрдбрд╝реЛрдВ, рдФрд░ рдлрд┐рд░ рд╣рдЬрд╛рд░реЛрдВ, рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЛ рдЬрдХрд╛рд░реНрддрд╛ рд╕реЗ рдХреЙрдордиреНрд╕-рд▓реЙрдЧрд┐рдВрдЧ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдЗрдирдореЗрдВ рд╣рд╛рдЗрдмрд░рдиреЗрдЯ, рд╕реНрдкреНрд░рд┐рдВрдЧ, рдЯреЙрдореНрдХрдЯ рд╢рд╛рдорд┐рд▓ рдереЗред рдЙрд╕рдХреЗ рдмрд╛рдж, рдЗрди рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рдХрдИ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреА рдПрдХ рд▓рд╣рд░ рд╕реЗ рдмрд╣ рдЧрдП рдереЗ,
рдЬрд┐рдиреНрд╣реЗрдВ рдЖрдорддреМрд░ рдкрд░
рдХреНрд▓рд╛рд╕рд▓реЛрджрд░ рдирд░рдХ рдХреЗ рд░реВрдк рдореЗрдВ рд╡рд░реНрдгрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛
рдерд╛ ред рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╕рд░реНрд╡рд░ рдХреНрд▓рд╛рд╕рдкреНрд▓реЗрдпрд░реНрд╕ рдХреЗ рдмрдЬрд╛рдп рдЬрдЯрд┐рд▓ рдкрджрд╛рдиреБрдХреНрд░рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдЕрдХреНрд╕рд░ рдЬреЗ 2 рдИрдИ рдорд╛рдирдХ рд╕реЗ рдЧрдВрднреАрд░ рд╡рд┐рдЪрд▓рди рдХреЗ рд╕рд╛рдеред рдЗрди рд╢рд░реНрддреЛрдВ рдХреЗ рддрд╣рдд,
рдХрднреА-рдХрднреА рдЬреЗрд╕реАрдПрд▓ рдХреЛ рджреЛ рдмрд╛рд░ рд╢реБрд░реВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдЧрд▓рдд рддрд░реАрдХреЗ рд╕реЗ, рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд░рд╣рд╕реНрдпрдордп рд╕реНрдЯреИрдХ рдХреЗ рдирд┐рд╢рд╛рди рдХреЗ рд▓рд┐рдП рдЕрдЧреНрд░рдгреА рд╣реЛрддрд╛ рд╣реИ, рдЬреЛ рд╣рдореЗрдВ рдпрд╣ рднреА рд╕рдВрджреЗрд╣ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИ рдХрд┐ рд╕рдорд╕реНрдпрд╛ рд▓реЙрдЧ рдЖрд╡рд░рдг рдореЗрдВ рд╣реИред
рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдУрдкрди рд╕реЛрд░реНрд╕ рдиреЗ рдЗрд╕ рд╡рд┐рдХреГрддрд┐ рдХреЛ рдЬрдиреНрдо рджреЗрддреЗ рд╣реБрдП рдЗрддрдиреЗ рдЕрдЬреАрдм рддрд░реАрдХреЗ рд╕реЗ рдХрд╛рдо рдХреНрдпреЛрдВ рдХрд┐рдпрд╛? рдбреЗрд╡рд▓рдкрд░реНрд╕ рдиреЗ рд╕рд┐рд░реНрдл рдПрдХ рдФрд░ рдкрд░рд┐рдкрдХреНрд╡ рдФрд░ рд▓реЛрдХрдкреНрд░рд┐рдп рдУрдкрди рд╕реЛрд░реНрд╕ рдЙрддреНрдкрд╛рдж - log4j рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рд╣рд┐рдореНрдордд рдХреНрдпреЛрдВ рдирд╣реАрдВ рдХреА? рдпрд╣рд╛рдБ рдмрд┐рдВрджреБ, рд╢рд╛рдпрдж, рд╕рдореБрджрд╛рдп рдХреА рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдЬрдбрд╝рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдпрд╛ рддреЛ рдПрдПрд╕рдПрдл (рдФрд░ рдЗрд╕ рдмреБрд░реЗ рд╕рдкрдиреЗ рдХреЛ рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдЬрдХрд╛рд░реНрддрд╛ рд╕рдореВрд╣ рдПрдПрд╕рдПрдл рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИ) рдпрд╛ рд╕реВрд░реНрдп рдХрд╛ рдЕрдиреБрд╕рд░рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЬреИрд╕реЗ рд╣реА рдЬреЗрд╕реАрдПрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХрд╛ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рджреНрд░рд╡реНрдпрдорд╛рди рдмрдирддрд╛ рд╣реИ, рдмрд╛рдХреА рд╕рднреА (рдФрд░ рд╕рдмрд╕реЗ рд╡рд┐рдирдореНрд░ рд▓реЛрдЧ рдирд╣реАрдВ, рдареАрдХ рд╣реИ, рдЧреИрд╡рд┐рди рдХрд┐рдВрдЧ?) рдЬреЗрд╕реАрдПрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░рддрд╛ рд╣реИ (рдХреНрдпреЛрдВрдХрд┐ рдЕрдкрд╛рдЪреЗ рднрдпрд╛рдирдХ рд╣реИ!)ред рдпрд╣ рдЖрдорддреМрд░ рдкрд░ рдмреНрд░рд╛рдЙрдирд┐рдпрди рдЖрдВрджреЛрд▓рди рдХреА рдпрд╛рдж рджрд┐рд▓рд╛рддрд╛ рд╣реИ, рдЬрд╣рд╛рдВ рдЕрдкрд╛рдЪреЗ рдпрд╛ рд╕рди рдЬреИрд╕реЗ рдмреНрд░рд╛рдВрдб рдХрдо рджрдмрд╛рд╡ рд╡рд╛рд▓реЗ рдХреНрд╖реЗрддреНрд░ рдмрдирд╛рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИрдВ рдЬрд╣рд╛рдВ рд▓рд╛рдЦреЛрдВ рдбреЗрд╡рд▓рдкрд░реНрд╕ рднрд╛рдЧ рд░рд╣реЗ рд╣реИрдВред JCL рдорд╛рдорд▓реЗ рдореЗрдВ, "рд╕рдлрд▓рддрд╛ рдХреА рдХрд╣рд╛рдиреА" рдХрд╛ рд╡рд░реНрдгрди
рд░реЙрдб рд╡рд╛рд▓реНрдбрд╣реЙрдл (рддрдерд╛рдХрдерд┐рдд рдЬрдХрд╛рд░реНрддрд╛ рдХреЙрдордиреНрд╕ рдХреЗ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдореЗрдВ рд╕реЗ рдПрдХ) рдХреЗ
рдмреНрд▓реЙрдЧ рдкрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рдкреНрд░рдЧрддрд┐ рдХрд╛ рдПрдХ рдирдпрд╛ рджреМрд░
рдЗрд╕рд▓рд┐рдП, рдХрд╣реАрдВ рди рдХрд╣реАрдВ 2004 рдореЗрдВ рд╣рдо рдХрд┐рдЯ рдореЗрдВ рд╣реИрдВ:
- рд╕реНрдерд┐рд░ рдФрд░ рдХрд╛рд░реНрдпрд╛рддреНрдордХ рд░реВрдк рд╕реЗ рд╡рд┐рдХрд╕рд┐рдд log4j
- рд╕реБрд╕реНрдд java.util.log
- рд╕рдорд╕реНрдпрд╛ рдХреЙрдордиреНрд╕-рд▓реЙрдЧрд┐рдВрдЧ
- рдХреБрдЫ рдЫреЛрдЯреЗ рд▓рдХрдбрд╝рд╣рд╛рд░реЗ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рдирд╣реАрдВ рд╣реИрдВ
рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдЗрд╕ рд╕рдордп log4j рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рд░реВрдврд╝рд┐рд╡рд╛рджреА рдореВрдб рдкреНрд░рдмрд▓ рдерд╛ред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдкреБрд░рд╛рдиреЗ JDKs рдХреЗ рд╕рд╛рде рд╕рдВрдЧрддрддрд╛ рдкрд░ рдзреНрдпрд╛рди рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдПрдХ рдирдИ рд╢рд╛рдЦрд╛ log4j рдХрд╛ рд╡рд┐рдХрд╛рд╕ - 1.3.xред рдпрд╣ рд╕рдВрд╕реНрдХрд░рдг рдПрдХ рдкреНрд░рдХрд╛рд░ рдХрд╛ рд╕рдордЭреМрддрд╛ рд╕рдорд╛рдзрд╛рди рд╣реИ: рд╣рд╛рдВ, рдореИрдВ рдирдИ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рд╣рд╛рдВ, рдореИрдВ рдкрд┐рдЫрдбрд╝реА рд╕рдВрдЧрддрддрд╛ рдмрдирд╛рдП рд░рдЦрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рд╣рд╛рдВ, рд╣рдо рд╣рдорд╛рд░реЗ рдФрд░ рдЖрдкрдХреЗ рджреЛрдиреЛрдВ рдХреЛ рдЦреБрд╢ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВрдЧреЗред рдЗрд╕ рдмреАрдЪ, рд░рд╛рд╕реНрддреЗ рдореЗрдВ JDK 1.5 рдХреЗ рд╕рд╛рде varargs, JMX рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдФрд░ рдЕрдиреНрдп рдЙрдкрд╣рд╛рд░реЛрдВ рдХрд╛ рдПрдХ рдЧреБрдЪреНрдЫрд╛ред Log4j рдЯреАрдо рдиреЗ рдПрдХ рджрд┐рдорд╛рдЧреА рд╢реБрд░реБрдЖрдд рдХреАред 2.x рд╢рд╛рдЦрд╛ рдЕрд▓рдЧ рд╣реИ - рдореБрдЦреНрдп 1.2.x рд╢рд╛рдЦрд╛ рдХреЗ рд╕рд╛рде рдЕрд╕рдВрдЧрдд рд╣реИ рдФрд░ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ JDK 1.5 рдХреЗ рд▓рд┐рдП рдмрдирд╛рдИ рдЧрдИ рд╣реИред рдЬрд╛рд╡рд╛ рд╕рдореБрджрд╛рдп рдЕрдзреАрд░ рджрд┐рдЦ рд░рд╣рд╛ рд╣реИред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдЬреИрд╕реЗ
рдХреБрдЫ рд╣реЛ рд░рд╣рд╛
рд╣реИ ред рд▓реЗрдХрд┐рди рдХреНрдпрд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рд╣реИ - log4j 2.0 рдЕрднреА рднреА рдПрдХ рдЕрдкреНрд░рд╛рдкреНрдп рдЕрд▓реНрдлрд╛ рд╣реИ, log4j 1.3 рдмреЗрддрд╣рд╛рд╢рд╛ рдЫреЛрдЯреА рдЧрд╛рдбрд╝реА рд╣реИ рдФрд░ рд╡рд╛рджрд╛ рдХрд┐рдП рдЧрдП рдбреНрд░реЙрдк-рдЗрди рд╕рдВрдЧрддрддрд╛ рдкреНрд░рджрд╛рди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдФрд░ рдХреЗрд╡рд▓ рд╢рд╛рдЦрд╛ 1.2 рдЕрднреА рднреА рд╕реНрдерд┐рд░ рдФрд░ рдЬреАрд╡рд┐рдд рд╣реИ рдФрд░ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ,
рдХреБрдЫ рд╡рд░реНрд╖реЛрдВ рдореЗрдВ рдХреВрдж рд░рд╣рд╛
рд╣реИ - рдзреНрдпрд╛рди! - рд╕рдВрд╕реНрдХрд░рдг 1.2.6 рд╕реЗ 1.2.12 рддрдХред
2006 рдореЗрдВ рдХрд╣реАрдВ, log4j рдХреЗ рд╕рдВрд╕реНрдерд╛рдкрдХ рдкрд┐рддрд╛ рдореЗрдВ рд╕реЗ рдПрдХ - Ceki G├╝lc├╝ - рддреЗрдЬреА рд╕реЗ рдХреНрд╖рдп рдХрд░рдиреЗ рд╡рд╛рд▓реА рдЯреАрдо рдХреЛ рдЫреЛрдбрд╝рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд░рддрд╛ рд╣реИред рддреЛ SLF4J (рдЬрд╛рд╡рд╛ рдХреЗ рд▓рд┐рдП рд╕рд░рд▓ рд▓реЙрдЧрд┐рдВрдЧ рдореБрдЦреМрдЯрд╛) рдирд╛рдордХ рдЕрдЧрд▓реЗ "рд╕рдм рдХреБрдЫ рдХрд╛ рдЖрд╡рд░рдг" рдХрд╛ рдЬрдиреНрдо рд╣реБрдЖ рд╣реИред рдЕрдм рдпрд╣ рдЪрд╛рд░реЛрдВ рдУрд░ рдПрдХ рдЖрд╡рд░рдг рд╣реИ: log4j, JUL, рдХреЙрдордиреНрд╕-рд▓реЙрдЧрд┐рдВрдЧ, рдФрд░ рдПрдХ рдирдпрд╛ рд▓рдХрдбрд╝рд╣рд╛рд░рд╛ рдЬрд┐рд╕реЗ рд▓реЙрдЧрдмреИрдХ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдкреНрд░рдЧрддрд┐ рддреЗрдЬреА рд╕реЗ "рд░реИрдкрд░ рдХреЗ рдЪрд╛рд░реЛрдВ рдУрд░ рдЖрд╡рд░рдг" рдХреЗ рдЪрд░рдг рддрдХ рдкрд╣реБрдВрдЪ рдЧрдИред
рдпрд╣ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рдирд╛ рдЖрд╕рд╛рди рд╣реИ рдХрд┐, рдПрдХ рд╣реА рдпреЛрдЬрдирд╛ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рд▓рд┐рдкрдЯреЗ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдПрдХ рддрдереНрдпрд╛рддреНрдордХ рдХреЗ рд░реВрдк рдореЗрдВ рдмрдврд╝реЗрдЧреАред рд╣рд╛рд▓рд╛рдБрдХрд┐, SLF4J рдЕрдиреНрдп рдЕрдиреНрдп рдЯреНрд╡рд┐рд╕реНрдЯ рднреА рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдпреЗ рд╡рд┐рд╢реЗрд╖ рдмрд╛рдЗрдирд░реА рдПрдбреЗрдкреНрдЯрд░ рд╣реИрдВ: log4j рд╕реЗ SLF4J рддрдХ, рдХреЙрдордиреНрд╕-рд▓реЙрдЧрд┐рдВрдЧ рд╕реЗ SLF4J рдФрд░ рдЗрд╕реА рддрд░рд╣ред рдРрд╕реЗ рдПрдбреЗрдкреНрдЯрд░ рдХреЛрдб рдХреЗ рд▓рд┐рдП рдмрдирд╛рдП рдЬрд╛рддреЗ рд╣реИрдВ рдЬрд┐рдирдХреЗ рд╕реНрд░реЛрдд рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рд╣реИрдВ; рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЙрдиреНрд╣реЗрдВ рд▓реЙрдЧ рд▓рд╛рдЗрдмреНрд░реЗрд░реАрдЬрд╝ рдХреЗ рдореВрд▓ JAR рдХреЛ рдмрджрд▓рдирд╛ рд╣реЛрдЧрд╛ред рдореИрдВ рдХрд▓реНрдкрдирд╛ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рдХрд┐ рдпрд╣ рдХрд┐рд╕ рдкреНрд░рдХрд╛рд░ рдХрд╛ рджрд▓рд┐рдпрд╛ рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рдпрджрд┐ рдЖрдк рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдореЗрд░реЗ рд╕рднреА рд░реИрдкрд░реЛрдВ рдХреЗ рд▓рд┐рдП, рдИрдорд╛рдирджрд╛рд░реА рд╕реЗ, SLF4J рдПрдХ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдЙрддреНрдкрд╛рдж рд╣реИред рдкреВрд░реНрд╡рд╡рд░реНрддрд┐рдпреЛрдВ рдХреА рд╕рднреА рдХрдорд┐рдпреЛрдВ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрд╛ рдЧрдпрд╛ рдерд╛ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, CLASSPATH рдореЗрдВ рд╡рд░реНрдЧ рдЦреЛрдЬреЛрдВ рдХреЗ рд╕рд╛рде shamanistic рдиреГрддреНрдпреЛрдВ рдХреЗ рдмрдЬрд╛рдп, рдПрдХ рдЕрдзрд┐рдХ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рдпреЛрдЬрдирд╛ рдХрд╛ рдЖрд╡рд┐рд╖реНрдХрд╛рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдЕрдм рдкреВрд░реЗ рдЖрд╡рд░рдг рдХреЛ рджреЛ рднрд╛рдЧреЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ - рдПрдкреАрдЖрдИ (рдЬреЛ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ) рдФрд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди, рдЬреЛ рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░рдХрд╛рд░ рдХреЗ рд▓реЙрдЧрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ-рдЕрд▓рдЧ JAR рдлрд╝рд╛рдЗрд▓реЛрдВ рджреНрд╡рд╛рд░рд╛ рджрд░реНрд╢рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП,
slf4j-log4j12.jar
,
slf4j-jdk14.jar
, рдЖрджрд┐)ред рдЕрдм рдпрд╣ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдлрд╝рд╛рдЗрд▓ рдХреЛ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ, рдЬрд┐рд╕рдХреЗ рдмрд╛рдж - рдЙрдлрд╝! рд╕рднреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛрдб рдФрд░ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рд╕рднреА рдкреБрд╕реНрддрдХрд╛рд▓рдп (рдмрд╢рд░реНрддреЗ рдХрд┐ рд╡реЗ SLF4J рдПрдкреАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ) рд╕рд╣реА рджрд┐рд╢рд╛ рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдХрд░реЗрдВрдЧреЗред
рдХрд╛рд░реНрдпрд╛рддреНрдордХ рд░реВрдк рд╕реЗ, SLF4J рдиреЗ рд╕рднреА рдЖрдзреБрдирд┐рдХ рдШрдВрдЯрд┐рдпрд╛рдБ рдФрд░ рд╕реАрдЯреА рдЬреИрд╕реЗ NDC рдФрд░ MDC рдХрд╛ рд╕рдорд░реНрдерди рдХрд┐рдпрд╛ред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд░реИрдкрд┐рдВрдЧ рдХреЙрд▓ рдХреЗ рдЕрд▓рд╛рд╡рд╛, SLF4J рдиреЗ рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдХреЛ рдлреЙрд░реНрдореЗрдЯ рдХрд░рддреЗ рд╕рдордп рдПрдХ рдЫреЛрдЯрд╛ рд▓реЗрдХрд┐рди рдЙрдкрдпреЛрдЧреА рдмреЛрдирд╕ рдХреА рдкреЗрд╢рдХрд╢ рдХреАред рдпрд╣рд╛рдБ рдмреЛрдирд╕ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИред рдХреЛрдб рдореЗрдВ, рдЖрдкрдХреЛ рдЕрдХреНрд╕рд░ рдлреЙрд░реНрдо рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЛ рдкреНрд░рд┐рдВрдЯ рдХрд░рдирд╛ рд╣реЛрддрд╛ рд╣реИ:
log.debug("User " + user + " connected from " + request.getRemoteAddr());
рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ рдкреНрд░рд┐рдВрдЯ рдХрд░рдиреЗ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрд╣рд╛рдВ
user.toString()
рд░реВрдкрд╛рдВрддрд░рдг рдХрд╛
user.toString()
рд╕реЗ рдкрд╛рд▓рди рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рд╕рдм рдХреБрдЫ рдирд╣реАрдВ рд╣реЛрдЧрд╛ред рдбрд┐рдмрдЧ рдореЛрдб рдореЗрдВ, рдирд┐рд╖реНрдкрд╛рджрди рдХреА рдЧрддрд┐ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╣рдореЗрдВ рдкрд░реЗрд╢рд╛рди рдирд╣реАрдВ рдХрд░рддреА рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рднрд▓реЗ рд╣реА рд╣рдо рд╕реНрддрд░ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдХрд╣рддреЗ рд╣реИрдВ, INFO рдореЗрдВ, рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдЕрднреА рднреА рд╣реЛрдЧрд╛! рдХреЛрдИ рдЪрдорддреНрдХрд╛рд░ рдирд╣реАрдВ:
log.debug
рдХреЙрд▓ рдХрд░рдиреЗ
рд╕реЗ рдкрд╣рд▓реЗ рд▓рд╛рдЗрди рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП
log.debug
рдкрд╛рд╕ рдХрд┐рд╕реА рднреА рддрд░рд╣ рдЗрд╕реЗ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИред рдпрджрд┐ рдЖрдк рдХрд▓реНрдкрдирд╛ рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣
log.debug
рдХреБрдЫ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЖрдВрддрд░рд┐рдХ рд▓реВрдк рдореЗрдВ рд░рдЦрд╛ рдЧрдпрд╛ рд╣реИ ... рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ, рдЖрдк рдЙрд╕ рддрд░рд╣ рдирд╣реАрдВ рд░рд╣ рд╕рдХрддреЗред Log4j рдХреЗ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдиреЗ рдбрд┐рдмрдЧрд┐рдВрдЧ рдХреЛрдб рдХреЛ рдЗрд╕ рддрд░рд╣ рддреИрдпрд╛рд░ рдХрд░рдиреЗ рдХрд╛ рд╕реБрдЭрд╛рд╡ рджрд┐рдпрд╛:
if (log.isDebugEnabled()) { log.debug("User " + user + " connected from " + request.getRemoteAddr()); }
рдпрд╣ рдЕрдЪреНрдЫрд╛ рдирд╣реАрдВ рд╣реИред рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ, рд▓реЙрдЧрд┐рдВрдЧ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рджреНрд╡рд╛рд░рд╛ рдЗрди рд╕рднреА рд╕рдорд╕реНрдпрд╛рдУрдВ рдХрд╛ рдзреНрдпрд╛рди рд░рдЦрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдХреЗрд╡рд▓ log4j рдХреА рдПрдЪреНрд▓реАрд╕ рд╣реАрд▓ рдХреА рдереАред рдбреЗрд╡рд▓рдкрд░реНрд╕ рдиреЗ рд╕реБрд╕реНрдд рд░реВрдк рд╕реЗ рдХрд┐рдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╡реНрдпрдХреНрдд рдХрд░рддреЗ рд╣реБрдП рдХрд╣рд╛ рдХрд┐ рдЕрдм рдЖрдк рд▓реЙрдЧрд┐рдВрдЧ рдХреЙрд▓ (рдмрд┐рд▓рдХреБрд▓ рд╕рд╣реА!) рдореЗрдВ рдПрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдпрд╣ рднреА рдмрддрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдСрдмреНрдЬреЗрдХреНрдЯрд░реЗрдВрдбрд░ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд▓реЙрдЧ рдХреЛ рдпрд╣ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреИрд╕реЗ рд▓рд┐рдЦрд╛ рдЬрд╛рдПрдЧрд╛ред рджреНрд╡рд╛рд░рд╛ рдФрд░ рдмрдбрд╝реЗ, рдпреЗ рд╕рднреА рдмрд╣рд╛рдиреЗ рдФрд░ рдЖрдзреЗ рдЙрдкрд╛рдп рдереЗред
SLF4J рдХреЛ JDK рдФрд░ API рдХреЗ рдкреБрд░рд╛рдиреЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рд╕рдВрдЧрддрддрд╛ рдХреЗ рдврд╛рдВрдЪреЗ рджреНрд╡рд╛рд░рд╛ рдирд┐рдЪреЛрдбрд╝рд╛ рдирд╣реАрдВ рдЧрдпрд╛ рдерд╛, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рддреБрд░рдВрдд рдПрдХ рдФрд░ рд╕реБрдВрджрд░ рд╕рдорд╛рдзрд╛рди рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдХрд┐рдпрд╛:
log.debug("User {} connected from {}", user, request.getRemoteAddr());
рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рд╕рдм рдХреБрдЫ рд╕рд░рд▓ рд╣реИред рдЗрд╕ рдкрдВрдХреНрддрд┐ рдореЗрдВ,
{}
рдЕрд▓рдЧ рд╕реЗ рдкрд╛рд░рд┐рдд рдХрд┐рдП рдЧрдП рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд▓рд┐рдВрдХ рд╣реИрдВред рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ рд▓реЙрдЧ рд░рд┐рдХреЙрд░реНрдб рдХреЗ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдФрд░ рдЕрдВрддрд┐рдо рд╕реНрд╡рд░реВрдкрдг рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рдирд╛ рддрдм рд╣реЛрддрд╛ рд╣реИ рдЬрдм DEBUG рд╕реНрддрд░ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЖрдк рдмрд╣реБрдд рд╕рд╛рд░реЗ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рдкрд╛рд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ!
if
рдФрд░ рдЕрдиреНрдп рдЧреВрдВрдЧрд╛ рд╣реИ
if
рдлреНрд░реЗрдорд┐рдВрдЧ рд▓рд┐рдЦрдиреЗ рдХреА рдЬрд░реВрд░рдд рдирд╣реАрдВ рд╣реИ!
рдХреЛрд╖реНрдардХ рдореЗрдВ, рдпрд╣ рдзреНрдпрд╛рди рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдпрд╣ рд╡рд┐рд╢реЗрд╖рддрд╛ рднреА рдЧреНрд░реВрд╡реА рднрд╛рд╖рд╛ рджреНрд╡рд╛рд░рд╛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рд░реВрдк рд╕реЗ рд▓рд╛рдЧреВ рдХреА рдЧрдИ рдереА, рдЬрд╣рд╛рдВ GString рдХреА рдЕрд╡рдзрд╛рд░рдгрд╛ рд╣реИ, рдЕрд░реНрдерд╛рддред рд╕реНрдЯреНрд░рд┐рдВрдЧ рджреЗрдЦреЗрдВ
"User ${user} connected from ${request.getRemoteAddr()}"
, рдЬреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдХрдИ рд╕рдВрджрд░реНрдн рдЪрд░ (рдпрд╣рд╛рдВ рдпрд╣
user
,
request
) рдХреЗ рд╕рд╛рде рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рд╣реИ, рдФрд░ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреА рдЧрдгрдирд╛ рдПрдХ
рдЖрд╕реНрдердЧрд┐рдд рддрд░реАрдХреЗ рд╕реЗ рд╣реЛрддреА
рд╣реИ ред рдпрд╣ log4j рдХреЗ рд░реВрдк рдореЗрдВ рдЗрд╕ рддрд░рд╣ рдХреЗ рд▓реЙрдЧ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ - рдЖрдк рдЗрд╕реЗ GString рдЗрдирдкреБрдЯ рдореЗрдВ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдлрд┐рд░ рдпрд╛ рддреЛ рдЗрд╕реЗ рдЧрдгрдирд╛ рдХреЗ рдмрд┐рдирд╛ рдлреЗрдВрдХ рд╕рдХрддреЗ рд╣реИрдВ, рдпрд╛ рдлрд┐рд░ рднреА рдЗрд╕реЗ рд╕рд╛рдорд╛рдиреНрдп (рд╕реНрдерд┐рд░) рд╕реНрдЯреНрд░рд┐рдВрдЧ - рд╕реНрдЯреНрд░рд┐рдВрдЧ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ, SLF4J рдХреЛ рднрд╡рд┐рд╖реНрдп рдХреЗ рд▓рд┐рдП рдЖрд░рдХреНрд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд╕рд╛рде, рд╕рдХреНрд╖рдо рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдЗрд╕рд╕реЗ рд╕рдореБрджрд╛рдп рдХреЗ рдмреАрдЪ рдЗрд╕рдХреА рд▓реЛрдХрдкреНрд░рд┐рдпрддрд╛ рдореЗрдВ рдЧрдВрднреАрд░ рд╡реГрджреНрдзрд┐ рд╣реБрдИ: рдЕрдм SLF4J рдХрд╛ рдЙрдкрдпреЛрдЧ рдЬреЗрдЯреА, рд╣рд╛рдЗрдмрд░рдиреЗрдЯ, рдореАрдирд╛, рдЬреЗрд░реЛрдирд┐рдореЛ, рдореБрд▓реЗ, рд╡рд┐рдХреЗрдЯ, рдиреЗрдХреНрд╕рд╕ ... рдЬреИрд╕реА рдорд╣рддреНрд╡рдкреВрд░реНрдг рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рджреНрд╡рд╛рд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рд▓рдЧрднрдЧ рд╕рднреА рд╣рд╛рд░реЗ рд╣реБрдП рд▓реЛрдЧ рдПрдХ рдмрд╛рд░ рдХреЙрдордиреНрд╕-рд▓реЙрдЧрд┐рдВрдЧ рдкрд░ рдПрд╕рдПрд▓рдПрдл 4 рдЬреЗ рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░ рдЬрд╛рддреЗ рд╣реИрдВред ред рдореБрдЭреЗ рдЖрд╢реНрдЪрд░реНрдп рд╣реИ рдХрд┐ рдХрдИ рд╕рд╛рд▓ рдкрд╣рд▓реЗ рд╡рд╛рдВрдЫрд┐рдд рд░рд╛рдЬреНрдп рдореЗрдВ рдХреЙрдордиреНрд╕-рд▓реЙрдЧрд┐рдВрдЧ рдХреЗ рд╕реБрдзрд╛рд░ рдХреЛ рдХреНрдпрд╛ рд░реЛрдХрд╛ рдЧрдпрд╛ рдерд╛? рд▓реЗрдХрд┐рди рдпреЗ рдУрдкрди рд╕реЛрд░реНрд╕ рдХреА рд╡рд╛рд╕реНрддрд╡рд┐рдХрддрд╛рдПрдВ рд╣реИрдВ - рдЗрд╕рдореЗрдВ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдХрд╛ рд╡рд┐рдХрд╛рд╕ рд╡рд┐рдХрд╛рд╕рд╡рд╛рджреА рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрдзрд┐рдХ рдХреНрд░рд╛рдВрддрд┐рдХрд╛рд░реА рд╣реИред
рдЗрд╕рдХреЗ рд╕рд╛рде рд╣реА SLF4J рдХреЗ рд╕рд╛рде, рдПрдХ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдирдпрд╛ рд▓рдХрдбрд╝рд╣рд╛рд░рд╛ рдЯреЗрдмрд▓ рдкрд░ рд▓рд╛рдпрд╛ рдЧрдпрд╛ - рд▓реЙрдЧрдмреИрдХред рдпрд╣ рдПрдХ рдЖрджрдореА рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ рдЬреЛ рд▓реЙрдЧрд┐рдВрдЧ рдкрд░ рдПрдХ рдХреБрддреНрддреЗ рдХреЛ рдЦрд╛ рдЧрдпрд╛ рдерд╛, рдФрд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рдЕрдЪреНрдЫрд╛ рдЙрддреНрдкрд╛рдж рдирд┐рдХрд▓рд╛ред Logback рдХреЛ рдореВрд▓ рд░реВрдк рд╕реЗ JDK 1.5+ рдХреЗ рддрд╣рдд рддреЗрдЬ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдПрдХ рдореЗрдВ рд▓реЙрдЧ 4j рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдирд┐рд╣рд┐рдд рд╕рднреА рд╕реАрдиреЗрдЯ рдкрд┐рдЫрдбрд╝реЗ рд╕рдВрдЧрддрддрд╛ рд░реЛрдЧреЛрдВ рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдкрд╛рдпрд╛ред рдФрд░ рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ varargs,
java.util.concurrent
рдФрд░
рдЕрдиреНрдп рдкреНрд░рд╕рдиреНрди ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рд░рдирдЯрд╛рдЗрдо-рдлрд╝рд┐рд▓реНрдЯрд░рд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рдХрд╛рд░рдг, рдЖрдк рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕рддреНрд░ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд▓реЙрдЧрд┐рдВрдЧ рд╕реНрддрд░ рдХреЛ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рд╡рд┐рднрд┐рдиреНрди рд▓реЙрдЧ рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рдФрд░ рдЗрд╕реА рддрд░рд╣ рдЖрдЧреЗ рдФрд░ рдкреАрдЫреЗ рдмрд┐рдЦреЗрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдореИрдВ рд▓реЗрдЦрдХ рджреНрд╡рд╛рд░рд╛ рдЪрд┐рддреНрд░рд┐рдд рдореВрд░реНрддрд┐ рдореЗрдВ рд╕рд░рд╕реЛрдВ рдлреЗрдВрдХ рджреВрдВрдЧрд╛ред рдЗрди рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдореЗрдВ рд╕реЗ рдЕрдзрд┐рдХрд╛рдВрд╢ рдХреЛ log4j рдХреЗ рд▓рд┐рдП рдЕрддрд┐рд░рд┐рдХреНрдд рдкрд░рд┐рд╢рд┐рд╖реНрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЛ рдЭреБрдХрдирд╛ рдФрд░ рджрд░реНрдЬ рдХрд░рдирд╛ рдЕрдзрд┐рдХ рдХрдард┐рди рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдПрдХ рддрдереНрдп рд╣реИ рдХрд┐ рдЗрд╕рдХреЗ рд▓рд┐рдП рдирдП рд▓рдХрдбрд╝рд╣рд╛рд░реЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рд┐рдЪ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╕рднреА рд▓реЙрдЧрдмреИрдХ рд╡рд┐рдЬреНрдЮрд╛рдкрд┐рдд рдЪрд┐рдкреНрд╕ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЕрджреНрд╡рд┐рддреАрдп рдирд╣реАрдВ рд╣реИрдВред
рд╕рдореБрджрд╛рдп рдХреЗ рд▓рд┐рдП, рдпрд╣ рд╕рд╛рд╡рдзрд╛рдиреА рдХреЗ рд╕рд╛рде рд▓реЙрдЧрдмреИрдХ рдХрд╛ рдЗрд▓рд╛рдЬ рдХрд░рддрд╛ рд╣реИред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдХреБрдЫ рд╡рд░реНрд╖реЛрдВ рдореЗрдВ рдЙрдиреНрд╣реЗрдВ 0.9.x рд╕рдВрд╕реНрдХрд░рдг рдорд┐рд▓рд╛, рдФрд░ рдпрд╣ рдХреБрдЫ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЛ рдбрд░рд╛рддрд╛ рд╣реИред рджреВрд╕рд░реЗ, рд▓реЙрдЧрдмреИрдХ рди рддреЛ рдЕрдкрд╛рдЪреЗ рдЫрд╛рддрд╛ рдХреЗ рдиреАрдЪреЗ рд╣реИ рдФрд░ рди рд╣реА рд╕реВрд░реНрдп рдХреЗ рджрд╛рдпрд░реЗ рдореЗрдВ рд╣реИред рдпрд╣ рд▓реЛрдЧреЛрдВ рдХреЛ рдкрд░реЗрд╢рд╛рди рдХрд░рддрд╛ рд╣реИред рддреАрд╕рд░рд╛, рд▓реЗрдЦрдХ рдХреЛ рдЦрд╛рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ, рдЗрд╕рд▓рд┐рдП рд▓реЙрдЧрдмреИрдХ рдФрд░ рд╕рдорд░реНрдерди рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдРрдб-рдСрди рдХреЗ рд▓рд┐рдП, рдЗрд╕реЗ рдкреИрд╕реЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдпрд╣ рдХрднреА-рдХрднреА рдЫрд╛рддреНрд░реЛрдВ рдХреЛ рдбрд░рд╛рддрд╛ рд╣реИред рдЕрдиреНрдп рдЪреАрдЬреЛрдВ рдореЗрдВ, рд▓реЙрдЧрдмреИрдХ рдХреЗ рдкрд╛рд╕ рдПрдХ рдЬрдЯрд┐рд▓ рджреЛрд╣рд░реА рд▓рд╛рдЗрд╕реЗрдВрд╕ (рдПрд▓рдЬреАрдкреАрдПрд▓ / рдИрдкреАрдПрд▓) рд╣реИ, рдЬрдмрдХрд┐ рд▓реЙрдЧ 4 рдЬреЗ рдореЗрдВ рдПрдХ рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХ рдЕрдкрд╛рдЪреЗ рд▓рд╛рдЗрд╕реЗрдВрд╕ рд╣реИред рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдФрд░ рдЖрдо рддреМрд░ рдкрд░ рдкреБрдирд░реНрд╡рд┐рддрд░рдг рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдХреЗ рд▓рд┐рдП, рд▓рд╛рдЗрд╕реЗрдВрд╕рд┐рдВрдЧ рдПрдХ рдмрд╣реБрдд рд╣реА рд╕реВрдХреНрд╖реНрдо рдмрд┐рдВрджреБ рд╣реИред
рджреНрд╡рд╛рд░рд╛ рдФрд░ рдмрдбрд╝реЗ, Logback рдЖрдЬ рд╡рд┐рдХрд╛рд╕ рдХрд╛ рд╢рд┐рдЦрд░ рд╣реИред рд▓реЙрдЧрдмреИрдХ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдПрдХ рджрд░реНрдЬрди рдирдП рд▓реЙрдЧрд┐рдВрдЧ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рджрд┐рдЦрд╛рдИ рджрд┐рдП рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЙрдЪреНрдЪ рд╕рдВрднрд╛рд╡рдирд╛ рдХреЗ рд╕рд╛рде рдЙрдирдореЗрдВ рд╕реЗ рдХреЛрдИ рднреА рдЬреАрд╡рд┐рдд рдирд╣реАрдВ рд░рд╣реЗрдЧрд╛ред рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ, рдлрд┐рд▓рд╣рд╛рд▓ рдХреА рд╕реНрдерд┐рддрд┐ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ:- log4j - рд╢реБрд░реВ рдореЗрдВ рдЗрд╕ рдкрд░ рд╣реБрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ рдФрд░ рд╕рдВрдХреНрд░рдордг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЛ рди рджреЗрдЦреЗрдВред
- рдЬреВрд▓ рдПрдХ рдЪреБрдкрдЪрд╛рдк рдорд░рдиреЗ рд╡рд╛рд▓рд╛ рдорд╛рдирдХ рд╣реИред рд╢реБрд░реВ рдореЗрдВ рд╕рднреА рдиреЗ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рд▓реЙрдЧрдмреИрдХ рдореЗрдВ рдЪрд▓реЗ рдЧрдПред
- рдХреЙрдордиреНрд╕-рд▓реЙрдЧрд┐рдВрдЧ - рдЖрдорддреМрд░ рдкрд░ рд╡рд┐рд░рд╛рд╕рдд рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛрддреЗ рд╣реИрдВ рдЬреЛ рдХреБрдЫ рдмреЗрд╣рддрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдЕрд╕реБрд╡рд┐рдзрд╛ рд╕реЗ рдбрд░рддреЗ рд╣реИрдВред
- SLF4J - рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдореЗрдВ рдмрд╣реБрдд рд▓реЛрдХрдкреНрд░рд┐рдп рд╣реИред рдХрдИ рд▓реЛрдЧ рдЗрд╕реЗ рд▓реЗ рдЧрдП, рдХреЙрдордиреНрд╕-рд▓реЙрдЧрд┐рдВрдЧ рдХреА рднрдпрд╛рд╡рд╣рддрд╛ рдХреЛ рд╕рд╣рди рдХрд░рдиреЗ рдореЗрдВ рдЕрд╕рдорд░реНрде
- Logbacks рдЖрдорддреМрд░ рдкрд░ рдЖрдзреБрдирд┐рдХ рдЙрдЪреНрдЪ-рдкреНрд░рджрд░реНрд╢рди рд╕рд░реНрд╡рд░ рд╣реИрдВ рдЬреЛ log4j рдХреЗ рдЕрдиреБрд░реВрдк рдирд╣реАрдВ рд╣реИрдВред
рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рд╣реА рдХрд╣рд╛ рд╣реИ рдХрд┐ рдУрдкрди рд╕реЛрд░реНрд╕ рд╕рдореБрджрд╛рдп рдЭреБрдВрдб рдХреЗ рд▓рд┐рдП "рдЧреБрд░реБрддреНрд╡рд╛рдХрд░реНрд╖рдг рдХреЗ рдХреЗрдВрджреНрд░реЛрдВ" рдореЗрдВ рдЬрд╛рддрд╛ рд╣реИред рдЕрдм рдЧреБрд░реБрддреНрд╡рд╛рдХрд░реНрд╖рдг рдХрд╛ рдРрд╕рд╛ рдХреЗрдВрджреНрд░ рдЗрд╕рдХреА "рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХрддрд╛" рдХреЗ рдХрд╛рд░рдг SLF4J рд╣реИред рдПрд╕рдПрд▓рдПрдл 4 рдЬреЗ рдХреА рд╕рд╛рдкреЗрдХреНрд╖ рд▓реЛрдХрдкреНрд░рд┐рдпрддрд╛ рдХреБрдЫ рд╣рдж рддрдХ рдирдП рд░реИрдкрд░реЛрдВ рдХреЗ рдЙрджреНрднрд╡ рдХреА рдЧрд╛рд░рдВрдЯреА рджреЗрддреА рд╣реИред SLF4J рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ "рдорд╣рддреНрд╡рдкреВрд░реНрдг рджреНрд░рд╡реНрдпрдорд╛рди" рдХреЛ рдЬрдорд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдкрд░реНрдпрд╛рдкреНрдд рд╣реИред Logback (рдПрдХ рд╣реА рд▓реЗрдЦрдХ, рдЖрдк рдХреЗ рджрд┐рдорд╛рдЧ) рдореЗрдВ рдРрд╕рд╛ рдХреЛрдИ рдорд╣рддреНрд╡рдкреВрд░реНрдг рджреНрд░рд╡реНрдпрдорд╛рди рдирд╣реАрдВ рд╣реИред (рд╡реИрд╕реЗ, log4j рдЕрднреА рднреА рд╣рдореЗрдВ рд╕реБрдирд╣рд░реЗ рдкрд╣рд╛рдбрд╝реЛрдВ рдФрд░ рд╕рдВрд╕реНрдХрд░рдг 2.0 рдХрд╛ рд╡рд╛рджрд╛ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЪреАрдЬреЗрдВ рдЕрднреА рднреА рд╣реИрдВред) рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЕрдЧрд░ рд▓реЙрдЧрдмреИрдХ рдЕрдкрдиреЗ рдЧрд░реНрд╡ рдХреЛ рд╢рд╛рдВрдд рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЕрдкрд╛рдЪреЗ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рддрд╛ рд╣реИ, рддреЛ рдЙрд╕рдХреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдмрд╣реБрдд рд╕реБрдзрд╛рд░ рд╣реЛрдЧрд╛редрдирд┐рд╖реНрдХрд░реНрд╖
рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЗ рдордиреЛрд╡рд┐рдЬреНрдЮрд╛рди рдХреЗ рдХреЛрдг рд╕реЗ рдЗрд╕ рдореБрджреНрджреЗ рдХреЗ рдЗрддрд┐рд╣рд╛рд╕ рдХреЛ рджреЗрдЦрдирд╛ рджрд┐рд▓рдЪрд╕реНрдк рд╣реИред рджрд░рдЕрд╕рд▓, рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ, рдпрд╣ рд╕рдм рд╕рд░реНрдкрд┐рд▓ рд╣реИ (рдФрд░ рдпрд╣ рдкреНрд░рдЧрддрд┐рд╢реАрд▓ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ!) рдЖрдВрджреЛрд▓рди - рдЕрдВрддрд╣реАрди "рдкрд╣рд┐рдпрд╛ рдХреЛ рдордЬрдмреВрдд рдХрд░реЗрдВ"ред рдпрд╣реА рд╣реИ, рджреЛ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдореЗрдВ "рдореМрдЬреВрджрд╛ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░реЗрдВ" рдФрд░ "рдЕрдкрдирд╛ рдЦреБрдж рдХрд╛ рдХрд░реЗрдВ", рджреВрд╕рд░рд╛ рд╣рдореЗрд╢рд╛ рдЪреБрдирд╛ рдЧрдпрд╛ рдерд╛ред рдЗрд╕рд▓рд┐рдП, рдЙрд▓реНрд▓рд┐рдЦрд┐рдд рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдмрд┐рдирд╛ рд╢рд░реНрдд рдиреЗрддрд╛рдУрдВ (рдмрд╣реБрдд рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдорд╛рдирдХреЛрдВ рдореЗрдВ) рдореЗрдВ рдЯреВрдЯ рдЧрдпрд╛ рд╣реИред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╕рдордп рдкрд░ "рдХрдЯрд╛ рд╣реБрдЖ" рдХрд┐рдпрд╛ рдЧрдпрд╛ рдФрд░ рдПрдХ рд╕рд╛рде рдЕрднрд┐рдирдп рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп рдЕрд▓рдЧ-рдЕрд▓рдЧ рдХрд╛рдо рдХрд┐рдпрд╛ рдЧрдпрд╛ред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рдПрдХ рддрдереНрдп рдирд╣реАрдВ рд╣реИ рдХрд┐ рд╕рднреА рд▓реЗрдЦрдХ рдПрдХ рдЯреАрдо рдореЗрдВ рдХрд╛рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд░рд╛рдЬрдиреАрддрд┐рдХ рдХреНрд╖рдг рдереЗ (рдпрд╛рдж рд░рдЦреЗрдВ рдХрд┐ рдЧреНрд░рд╛рд╣рдо рд╣реИрдорд┐рд▓реНрдЯрди рдЖрдИрдмреАрдПрдо рдХреЛ рдХреИрд╕реЗ рдкрд╕рдВрдж рдХрд░рддреЗ рдереЗ), рдФрд░ рдЯреАрдо рдореЗрдВ рд╕рд┐рд░реНрдл рддреБрдЪреНрдЫ рдЭрдЧрдбрд╝реЗ рдереЗред рдЬрдХрд╛рд░реНрддрд╛ рдХреЙрдордиреНрд╕ рдХреЗ рдкреНрд░рддрд┐рднрд╛рдЧрд┐рдпреЛрдВ рдХреЛ "рдкрд╕рдВрдж рдХреА рд╕реНрд╡рддрдВрддреНрд░рддрд╛" рдХреЗ рд╕рд╛рде рд╕рдореБрджрд╛рдп рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреА рдЗрдЪреНрдЫрд╛ рдЖрдо рддреМрд░ рдкрд░ рд╕рдореБрджрд╛рдп рдХреЗ рд▓рд┐рдП "рд░реИрдкрд░реЛрдВ рдХреА рдорд╣рд╛рдорд╛рд░реА" рдореЗрдВ рдмрджрд▓ рдЧрдИредрд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдпреЗ рд╕рднреА рд╡рд┐рд╕реЗрд╕ рдПрдХ рдЦреБрд▓реЗ рд╕рдореБрджрд╛рдп рдХреЗ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╣реИрдВред рдпрд╣ 10-рд╡рд░реНрд╖ рдХреЗ рдЗрддрд┐рд╣рд╛рд╕ рд╕реЗ рднреА рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдзрд╛рд░рдгрд╛ рдХрд┐рддрдиреА рдЧрд▓рдд рд╣реИ рдХрд┐ рд╕реВрд░реНрдп рдЕрдм рдЬрд╛рд╡рд╛ рд╕рдореБрджрд╛рдп рдореЗрдВ рдХреБрдЫ рддрдп рдХрд░ рд░рд╣рд╛ рд╣реИред рд╣рдо рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рд╕реВрд░реНрдп рдХреЗ рд╡рд┐рдкрд░реАрдд рдФрд░ рд╕реНрд╡рддрдВрддреНрд░ рд░реВрдк рд╕реЗ рдХрдИ рдЪреАрдЬреЗрдВ рд╣реБрдИрдВред рдПрдХ рд╢рдмреНрдж рдореЗрдВ, рдореБрдЭреЗ рдЖрд╢реНрдЪрд░реНрдп рд╣реИ рдХрд┐ рдпрд╣ рдЖрдЧреЗ рдХреИрд╕реЗ рдмрдврд╝реЗрдЧрд╛ред рдореБрдЭреЗ рдПрдХ рдмрд╛рдд рдХрд╛ рдпрдХреАрди рд╣реИ - рдкрд░рд┐рдпреЛрдЬрдирд╛рдПрдБ рдЖрддреА рд╣реИрдВ рдФрд░ рдЬрд╛рддреА рд╣реИрдВ, рд▓реЛрдЧ рдмрджрд▓рддреЗ рдирд╣реАрдВ рд╣реИрдВ :)