CodeGym/Java Blog/рдпрд╛рджреГрдЪреНрдЫрд┐рдХ/рдЬрд╛рд╡рд╛ рд▓реЙрдЧрд┐рдВрдЧ
John Squirrels
рдкрд╛рддрд│реА 41
San Francisco

рдЬрд╛рд╡рд╛ рд▓реЙрдЧрд┐рдВрдЧ

рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдпрд╛ рдЧреНрд░реБрдкрдордзреНрдпреЗ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХреЗрд▓реЗ
рд╕рджрд╕реНрдп
рд╣рд╛рдп! рдзрдбреЗ рд▓рд┐рд╣рд┐рддрд╛рдирд╛, рдореА рд╡рд┐рд╢реЗрд╖рдд: рдПрдЦрд╛рджрд╛ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╡рд┐рд╖рдп рдЕрд╕рд▓реНрдпрд╛рд╕ рддреНрдпрд╛рд╡рд░ рдЬреЛрд░ рджреЗрддреЛ рдЬреЛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдХрд╛рд░реНрдпрд╛рдд рдкреВрд░реНрдгрдкрдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЕрд╕реЗрд▓. рддрд░, рдРрдХрд╛! рдЖрдЬ рдЖрдореНрд╣реА рдЬреНрдпрд╛ рд╡рд┐рд╖рдпрд╛рд╡рд░ рдЪрд░реНрдЪрд╛ рдХрд░рдгрд╛рд░ рдЖрд╣реЛрдд рддреЛ рд░реЛрдЬрдЧрд╛рд░рд╛рдЪреНрдпрд╛ рдкрд╣рд┐рд▓реНрдпрд╛ рджрд┐рд╡рд╕рд╛рдкрд╛рд╕реВрди рддреБрдордЪреНрдпрд╛ рд╕рд░реНрд╡ рдкреНрд░рдХрд▓реНрдкрд╛рдВрдордзреНрдпреЗ рдирдХреНрдХреАрдЪ рдЙрдкрдпреЛрдЧреА рдкрдбреЗрд▓. рдЖрдкрдг Java Logging рдмрджреНрджрд▓ рдмреЛрд▓рдгрд╛рд░ рдЖрд╣реЛрдд. рд╣рд╛ рд╡рд┐рд╖рдп рдЕрдЬрд┐рдмрд╛рдд рдХреНрд▓рд┐рд╖реНрдЯ рдирд╛рд╣реА (рдореА рдЕрдЧрджреА рд╕реЛрдкрд╛ рдореНрд╣рдгреЗрди). рдкрдг рддреБрдордЪреНрдпрд╛ рдкрд╣рд┐рд▓реНрдпрд╛ рдХрд╛рдорд╛рд╡рд░ рддрд╛рдг рджреЗрдгреНрдпрд╛рд╕рд╛рдареА рддреБрдордЪреНрдпрд╛рдХрдбреЗ рдкреБрд░реЗрд╢рд╛ рд╕реНрдкрд╖реНрдЯ рдЧреЛрд╖реНрдЯреА рдЕрд╕рддреАрд▓, рддреНрдпрд╛рдореБрд│реЗ рдЖрддреНрддрд╛рдЪ рддреЗ рдиреАрдЯ рд╕рдордЬреВрди рдШреЗрдгреЗ рдЪрд╛рдВрдЧрд▓реЗ рдЖрд╣реЗ :) рдмрд░рдВ, рдЪрд▓рд╛ рд╕реБрд░реБрд╡рд╛рдд рдХрд░реВрдпрд╛.

Java рдордзреНрдпреЗ рд▓реЙрдЧ рдЗрди рдХрд░рдгреЗ рдореНрд╣рдгрдЬреЗ рдХрд╛рдп?

рд▓реЙрдЧрд┐рдВрдЧ рд╣реЗ рдкреНрд░реЛрдЧреНрд░рд╛рдордЪреНрдпрд╛ рдСрдкрд░реЗрд╢рдирдмрджреНрджрд▓ рдбреЗрдЯрд╛ рд░реЗрдХреЙрд░реНрдб рдХрд░рдгреНрдпрд╛рдЪреА рдХреНрд░рд┐рдпрд╛ рдЖрд╣реЗ. рдЬреНрдпрд╛ рдард┐рдХрд╛рдгреА рдЖрдкрдг рд╣рд╛ рдбреЗрдЯрд╛ рд░реЗрдХреЙрд░реНрдб рдХрд░рддреЛ рддреНрдпрд╛рд▓рд╛ "рд▓реЙрдЧ" рдореНрд╣рдгрддрд╛рдд. рджреЛрди рдкреНрд░рд╢реНрди рд▓рдЧреЗрдЪ рдЙрджреНрднрд╡рддрд╛рдд: рдХреЛрдгрддрд╛ рдбреЗрдЯрд╛ рд▓рд┐рд╣рд┐рд▓рд╛ рдЖрд╣реЗ рдЖрдгрд┐ рдХреБрдареЗ? рдЪрд▓рд╛ "рдХреБрдареЗ" рдиреЗ рд╕реБрд░реБрд╡рд╛рдд рдХрд░реВрдпрд╛. рддреБрдореНрд╣реА рдкреНрд░реЛрдЧреНрд░рд╛рдордЪреНрдпрд╛ рдХрд╛рдорд╛рдЪрд╛ рдбреЗрдЯрд╛ рд╡реЗрдЧрд╡реЗрдЧрд│реНрдпрд╛ рдард┐рдХрд╛рдгреА рд▓рд┐рд╣реВ рд╢рдХрддрд╛. рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рддреБрдордЪреНрдпрд╛ рдЕрднреНрдпрд╛рд╕рд╛рджрд░рдореНрдпрд╛рди рддреБрдореНрд╣реА рдЕрдиреЗрдХрджрд╛ System.out.println()рдХрдиреНрд╕реЛрд▓рд╡рд░ рдбреЗрдЯрд╛ рдЖрдЙрдЯрдкреБрдЯ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА. рд╣реЗ рдЦрд░рдВрдЪ рд▓реЙрдЧрд┐рдВрдЧ рдЖрд╣реЗ, рдЬрд░реА рддреНрдпрд╛рдЪреНрдпрд╛ рд╕рд░реНрд╡рд╛рдд рд╕реЛрдкреНрдпрд╛ рд╕реНрд╡рд░реВрдкрд╛рдд. рдЕрд░реНрдерд╛рдд, рд╣реЗ рд╡рд╛рдкрд░рдХрд░реНрддреНрдпрд╛рдВрд╕рд╛рдареА рдХрд┐рдВрд╡рд╛ рдЙрддреНрдкрд╛рджрди рд╕рдорд░реНрдерди рд╕рдВрдШрд╛рд╕рд╛рдареА рдлрд╛рд░рд╕реЗ рд╕реЛрдпреАрдЪреЗ рдирд╛рд╣реА: рдЕрд░реНрдерд╛рддрдЪ, рддреЗ IDE рд╕реНрдерд╛рдкрд┐рдд рдХрд░реВ рдЗрдЪреНрдЫрд┐рдд рдирд╛рд╣реАрдд рдЖрдгрд┐ рдХрдиреНрд╕реЛрд▓рдЪреЗ рдирд┐рд░реАрдХреНрд╖рдг рдХрд░реВ рдЗрдЪреНрдЫрд┐рдд рдирд╛рд╣реАрдд :) рдорд╛рд╣рд┐рддреА рд░реЗрдХреЙрд░реНрдб рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЕрдзрд┐рдХ рдкреНрд░рдЪрд▓рд┐рдд рд╕реНрд╡рд░реВрдк рдЖрд╣реЗ: рдордЬрдХреВрд░ рдлрд╛рдЗрд▓реНрд╕. рдпрд╛ рдлреЙрд░рдореЕрдЯрдордзреНтАНрдпреЗ рдбреЗрдЯрд╛ рд╡рд╛рдЪрдгреНтАНрдпрд╛рд╕рд╛рдареА рдорд╛рдгрд╕реЗ рдЕрдзрд┐рдХ рд╕реЛрдпреАрд╕реНрдХрд░ рдЖрд╣реЗрдд рдЖрдгрд┐ рдбреЗрдЯрд╛ рд╕рдВрдЧреНрд░рд╣рд┐рдд рдХрд░рдгреНтАНрдпрд╛рд╕рд╛рдареА рддреЗ рдЕрдзрд┐рдХ рд╕реЛрдпреАрдЪреЗ рдЖрд╣реЗ! рдЖрддрд╛ рджреБрд╕рд░рд╛ рдкреНрд░рд╢реНрди: рдХреЛрдгрддрд╛ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдбреЗрдЯрд╛ рд▓реЙрдЧ рдХреЗрд▓рд╛ рдкрд╛рд╣рд┐рдЬреЗ? рддреЗ рд╕рд░реНрд╡рд╕реНрд╡реА рддреБрдордЪреНрдпрд╛рд╡рд░ рдЕрд╡рд▓рдВрдмреВрди рдЖрд╣реЗ! Java рдЪреА рд▓реЙрдЧрд┐рдВрдЧ рдкреНрд░рдгрд╛рд▓реА рдЕрддрд┐рд╢рдп рд▓рд╡рдЪрд┐рдХ рдЖрд╣реЗ. рддреБрдордЪрд╛ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХрд░рдд рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рд╕рд░реНрд╡ рдЧреЛрд╖реНрдЯреА рд▓реЙрдЧ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рддреБрдореНрд╣реА рддреЗ рдХреЙрдиреНрдлрд┐рдЧрд░ рдХрд░реВ рд╢рдХрддрд╛. рдПрдХреАрдХрдбреЗ, рд╣реЗ рдЪрд╛рдВрдЧрд▓реЗ рдЖрд╣реЗ. рдкрдг рджреБрд╕рд░реАрдХрдбреЗ, рдХрд▓реНрдкрдирд╛ рдХрд░рд╛ рдХреА рдлреЗрд╕рдмреБрдХ рдХрд┐рдВрд╡рд╛ рдЯреНрд╡рд┐рдЯрд░рдЪреНрдпрд╛ рд▓реЙрдЧрдордзреНрдпреЗ рд╕рд░реНрд╡рдХрд╛рд╣реА рд▓рд┐рд╣рд┐рд▓реЗ рддрд░ рддреЗ рдХрд┐рддреА рдореЛрдареЗ рдЕрд╕реЗрд▓. рдпрд╛ рдореЛрдареНрдпрд╛ рдХрдВрдкрдиреНрдпрд╛рдВрдХрдбреЗ рдХрджрд╛рдЪрд┐рдд рдЗрддрдХрд╛ рдбреЗрдЯрд╛ рд╕рдВрдЧреНрд░рд╣рд┐рдд рдХрд░рдгреНрдпрд╛рдЪреА рдХреНрд╖рдорддрд╛ рдЖрд╣реЗ. рдкрд░рдВрддреБ 500 рдЧреАрдЧрд╛рдмрд╛рдЗрдЯреНрд╕ рдордЬрдХреВрд░ рд▓реЙрдЧрдордзреНрдпреЗ рдПрдХрд╛ рдЧрдВрднреАрд░ рддреНрд░реБрдЯреАрдмрджреНрджрд▓ рдорд╛рд╣рд┐рддреА рд╢реЛрдзрдгреЗ рдХрд┐рддреА рдХрдареАрдг рдЕрд╕реЗрд▓ рдпрд╛рдЪреА рдХрд▓реНрдкрдирд╛ рдХрд░рд╛? рддреЗ рдЧрд╡рддрд╛рдЪреНрдпрд╛ рдЧрдВрдЬреАрдд рд╕реБрдИ рд╢реЛрдзрдгреНрдпрд╛рдкреЗрдХреНрд╖рд╛ рд╡рд╛рдИрдЯ рдЕрд╕реЗрд▓. рддреНрдпрд╛рдиреБрд╕рд╛рд░, Java рдлрдХреНрдд рддреНрд░реБрдЯреА рдбреЗрдЯрд╛ рд▓реЙрдЧ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдХреЙрдиреНрдлрд┐рдЧрд░ рдХреЗрд▓реЗ рдЬрд╛рдК рд╢рдХрддреЗ. рдХрд┐рдВрд╡рд╛ рдЕрдЧрджреА рдЧрдВрднреАрд░ рдЪреБрдХрд╛! рддреЗ рдореНрд╣рдгрд╛рд▓реЗ, Java рдЪреНрдпрд╛ рдореВрд│ рд▓реЙрдЧрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдордмрджреНрджрд▓ рдмреЛрд▓рдгреЗ рдкреВрд░реНрдгрдкрдгреЗ рдЕрдЪреВрдХ рдирд╛рд╣реА. рд╡рд╕реНрддреБрд╕реНрдерд┐рддреА рдЕрд╢реА рдЖрд╣реЗ рдХреА рд╣реА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рднрд╛рд╖реЗрдордзреНрдпреЗ рдЬреЛрдбрдгреНрдпрд╛рдкреВрд░реНрд╡реА рдкреНрд░реЛрдЧреНрд░рд╛рдорд░рдирд╛ рд▓реЙрдЧрд┐рдВрдЧрдЪреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА. Java рдиреЗ рд╕реНрд╡рддрдГрдЪреА рд▓реЙрдЧрд┐рдВрдЧ рд▓рд╛рдпрдмреНрд░рд░реА рд╕реБрд░реВ рдХреЗрд▓реА рддреЛрдкрд░реНрдпрдВрдд, рдкреНрд░рддреНрдпреЗрдХрдЬрдг рдЖрдзреАрдЪ log4j рд▓рд╛рдпрдмреНрд░рд░реА рд╡рд╛рдкрд░рдд рд╣реЛрддрд╛. Java рдордзреНрдпреЗ рд▓реЙрдЧ рдЗрди рдХрд░рдгреНрдпрд╛рдЪрд╛ рдЗрддрд┐рд╣рд╛рд╕ рдЦрд░рдВ рддрд░ рдЦреВрдк рдореЛрдард╛ рдЖрдгрд┐ рдорд╛рд╣рд┐рддреАрдкреВрд░реНрдг рдЖрд╣реЗ. рдереЛрдбрдХреНрдпрд╛рдд, рдЬрд╛рд╡рд╛рдЪреА рд╕реНрд╡рддрдГрдЪреА рд▓реЙрдЧрд┐рдВрдЧ рд▓рд╛рдпрдмреНрд░рд░реА рдЖрд╣реЗ, рдкрд░рдВрддреБ рдЬрд╡рд│рдЬрд╡рд│ рдХреЛрдгреАрд╣реА рддреЗ рд╡рд╛рдкрд░рдд рдирд╛рд╣реА :) рдирдВрддрд░, рдЬреЗрд╡реНрд╣рд╛ рдЕрдиреЗрдХ рднрд┐рдиреНрди рд▓реЙрдЧрд┐рдВрдЧ рд▓рд╛рдпрдмреНрд░рд░реА рджрд┐рд╕реВ рд▓рд╛рдЧрд▓реНрдпрд╛ рдЖрдгрд┐ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░рджреНрд╡рд╛рд░реЗ рд╡рд╛рдкрд░рд▓реНрдпрд╛ рдЬрд╛рдК рд▓рд╛рдЧрд▓реНрдпрд╛, рддреЗрд╡реНрд╣рд╛ рд╕реБрд╕рдВрдЧрддрддрд╛ рд╕рдорд╕реНрдпрд╛ рдЙрджреНрднрд╡рд▓реНрдпрд╛. рд▓реЛрдХрд╛рдВрдирд╛ рд╡реЗрдЧрд╡реЗрдЧрд│реНрдпрд╛ рдЗрдВрдЯрд░рдлреЗрд╕рд╕рд╣ рдбрдЭрдирднрд░ рд╡реЗрдЧрд╡реЗрдЧрд│реНрдпрд╛ рд▓рд╛рдпрдмреНрд░рд░реАрдВрдордзреНрдпреЗ рдЪрд╛рдХ рдкреБрдиреНрд╣рд╛ рд╢реЛрдзрдгреНрдпрд╛рдкрд╛рд╕реВрди рд░реЛрдЦрдгреНрдпрд╛рд╕рд╛рдареА, рдЕрдореВрд░реНрдд SLF4J рдлреНрд░реЗрдорд╡рд░реНрдХ ("рдЬрд╛рд╡рд╛рд╕рд╛рдареА рд╕рд░реНрд╡реНрд╣рд┐рд╕ рд▓реЙрдЧрд┐рдВрдЧ рдлреЕрдХреЗрдб") рддрдпрд╛рд░ рдХреЗрд▓реЗ рдЧреЗрд▓реЗ. рдпрд╛рд▓рд╛ рдЕтАНреЕрдмрд╕реНрдЯреНрд░реЕрдХреНрдЯ рдореНрд╣рдгрддрд╛рдд, рдХрд╛рд░рдг рдЬрд░реА рддреБрдореНрд╣реА SLF4J рдХреНрд▓рд╛рд╕реЗрд╕рдЪреНрдпрд╛ рдкрджреНрдзрддреА рд╡рд╛рдкрд░рд▓реНрдпрд╛ рдЖрдгрд┐ рдХреЙрд▓ рдХреЗрд▓реНрдпрд╛ рддрд░реАрд╣реА, рддреЗ рдкреНрд░рддреНрдпрдХреНрд╖рд╛рдд рдЖрдзреА рдЖрд▓реЗрд▓реЗ рд╕рд░реНрд╡ рд▓реЙрдЧрд┐рдВрдЧ рдлреНрд░реЗрдорд╡рд░реНрдХ рд╡рд╛рдкрд░рддрд╛рдд: log4j, рдорд╛рдирдХ java.util.logging рдЖрдгрд┐ рдЗрддрд░. рдПрдЦрд╛рджреНрдпрд╛ рд╡реЗрд│реА рддреБрдореНрд╣рд╛рд▓рд╛ Log4j рдЪреНрдпрд╛ рдХрд╛рд╣реА рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╡реИрд╢рд┐рд╖реНрдЯреНрдпрд╛рдВрдЪреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдЕрд╕рд▓реНрдпрд╛рд╕ рдЗрддрд░ рд▓рд╛рдпрдмреНрд░рд░реАрдВрдордзреНрдпреЗ рдЕрднрд╛рд╡ рдЕрд╕рд▓реНрдпрд╛рд╕, рдкрд░рдВрддреБ рддреБрдореНрд╣реА рдпрд╛ рд▓рд╛рдпрдмреНрд░рд░реАрд╢реА рддреБрдордЪрд╛ рдкреНрд░рдХрд▓реНрдк рдереЗрдЯ рд▓рд┐рдВрдХ рдХрд░реВ рдЗрдЪреНрдЫрд┐рдд рдирд╕рд▓реНрдпрд╛рд╕, рдлрдХреНрдд SLF4J рд╡рд╛рдкрд░рд╛. рдЖрдгрд┐ рдордЧ рддреНрдпрд╛рд▓рд╛ Log4j рдкрджреНрдзрддреА рдореНрд╣рдгреВ рджреНрдпрд╛. рдЬрд░ рддреБрдореНрд╣реА рддреБрдордЪрд╛ рд╡рд┐рдЪрд╛рд░ рдмрджрд▓рд▓рд╛ рдЖрдгрд┐ рдард░рд╡рд▓реЗ рдХреА рддреБрдореНрд╣рд╛рд▓рд╛ рдпрд╛рдкреБрдвреЗ Log4j рд╡реИрд╢рд┐рд╖реНрдЯреНрдпрд╛рдВрдЪреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╛рд╣реА, рддрд░ рддреБрдореНрд╣рд╛рд▓рд╛ рдлрдХреНрдд "рдкреБрдиреНрд╣рд╛ рдХреЙрдиреНрдлрд┐рдЧрд░ рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ.рдпреЗрдереЗ , рдЖрдгрд┐ Log4j рд▓рд╛рдпрдмреНрд░рд░реА рдпреЗрдереЗ рдЖрд╣реЗ . рдкреБрдвреЗ, рд╕рдВрдЧреНрд░рд╣ рдЕрдирдкреЕрдХ рдХрд░рд╛ рдЖрдгрд┐ JAR рдлрд╛рдЗрд▓реНрд╕ рдХреНрд▓рд╛рд╕рдкрд╛рдердордзреНрдпреЗ рдЬреЛрдбрдгреНрдпрд╛рд╕рд╛рдареА IntelliJ IDEA рд╡рд╛рдкрд░рд╛. рдореЗрдиреВ рдЖрдпрдЯрдо: рдлрд╛рдЗрд▓ -> рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╕реНрдЯреНрд░рдХреНрдЪрд░ -> рд▓рд╛рдпрдмреНрд░рд░реА рдЖрд╡рд╢реНрдпрдХ JAR рдлрд╛рдИрд▓реНрд╕ рдирд┐рд╡рдбрд╛ рдЖрдгрд┐ рддреНрдпрд╛ рдкреНрд░реЛрдЬреЗрдХреНрдЯрдордзреНрдпреЗ рдЬреЛрдбрд╛ (рдЖрдореНрд╣реА рдбрд╛рдЙрдирд▓реЛрдб рдХреЗрд▓реЗрд▓реНрдпрд╛ рдЖрд░реНрдХрд╛рдЗрд╡реНрд╣рдордзреНрдпреЗ рдЕрдиреЗрдХ JAR рдлрд╛рдЗрд▓реНрд╕ рдЖрд╣реЗрдд тАФ рддреБрдореНрд╣рд╛рд▓рд╛ рдЖрд╡рд╢реНрдпрдХ рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рдлреЛрдЯреЛ рдкрд╛рд╣рдгреНрдпрд╛рд╕рд╛рдареА рдЪрд┐рддреНрд░реЗ рдкрд╣рд╛) рд▓рдХреНрд╖рд╛рдд рдШреНрдпрд╛ рдХреА рд╣реА рд╕реВрдЪрдирд╛ рддреНрдпрд╛ рд╡рд┐рджреНрдпрд╛рд░реНрдереНрдпрд╛рдВрд╕рд╛рдареА рдЖрд╣реЗ рдЖрдореНрд╣рд╛рд▓рд╛ рд▓реЙрдЧрд┐рдВрдЧ рдХрд╛ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ - 2рдЖрдореНрд╣рд╛рд▓рд╛ рд▓реЙрдЧрд┐рдВрдЧ рдХрд╛ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ - 3. рдЬреНрдпрд╛рдВрдирд╛ рдорд╛рд╡реЗрди рдХрд╕реЗ рд╡рд╛рдкрд░рд╛рдпрдЪреЗ рд╣реЗ рдорд╛рд╣рд┐рдд рдирд╛рд╣реА. рддреБрдореНрд╣рд╛рд▓рд╛ Maven рдХрд╕реЗ рд╡рд╛рдкрд░рд╛рдпрдЪреЗ рд╣реЗ рдорд╛рд╣рд┐рдд рдЕрд╕рд▓реНрдпрд╛рд╕, рддреЗрдереЗ рдкреНрд░рд╛рд░рдВрдн рдХрд░рдгреНрдпрд╛рдЪрд╛ рдкреНрд░рдпрддреНрди рдХрд░рдгреЗ рд╕рд╣рд╕рд╛ рдЪрд╛рдВрдЧрд▓реЗ (рдЦреВрдк рд╕реЛрдкреЗ) рдЖрд╣реЗ. рддреБрдореНрд╣реА Maven рд╡рд╛рдкрд░рдд рдЕрд╕рд▓реНрдпрд╛рд╕ , рд╣реЗ рдЕрд╡рд▓рдВрдмрд┐рддреНрд╡ рдЬреЛрдбрд╛:
<dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-slf4j-impl</artifactId>
            <version>2.14.0</version>
</dependency>
рдЫрд╛рди! рдЖрдореНрд╣реА рд╕реЗрдЯрд┐рдВрдЧреНрдЬ рд╢реЛрдзреВрди рдХрд╛рдврд▓реНрдпрд╛ :) SLF4J рдХрд╕реЗ рдХрд╛рд░реНрдп рдХрд░рддреЗ рддреЗ рдкрд╛рд╣реВ. рдХрд╛рд░реНрдпрдХреНрд░рдорд╛рдЪреЗ рдХрд╛рдо рдХреБрдареЗрддрд░реА рд░реЗрдХреЙрд░реНрдб рдХреЗрд▓реЗ рдЖрд╣реЗ рдпрд╛рдЪреА рдЦрд╛рддреНрд░реА рдХрд╢реА рдХрд░рд╛рдпрдЪреА? рд╣реЗ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, рдЖрдкрд▓реНрдпрд╛рд▓рд╛ рджреЛрди рдЧреЛрд╖реНрдЯреАрдВрдЪреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдЖрд╣реЗ: рд▓реЙрдЧрд░ рдЖрдгрд┐ рдНрдкреЗрдВрдбрд░. рдЪрд▓рд╛ рдкрд╣рд┐рд▓реНрдпрд╛рдкрд╛рд╕реВрди рд╕реБрд░реБрд╡рд╛рдд рдХрд░реВрдпрд╛. рд▓реЙрдЧрд░ рд╣реА рдПрдХ рд╡рд╕реНрддреВ рдЖрд╣реЗ рдЬреА рд▓реЙрдЧрд┐рдВрдЧрдЪреЗ рдкреВрд░реНрдг рдирд┐рдпрдВрддреНрд░рдг рдкреНрд░рджрд╛рди рдХрд░рддреЗ. рд▓реЙрдЧрд░ рддрдпрд╛рд░ рдХрд░рдгреЗ рдЦреВрдк рд╕реЛрдкреЗ рдЖрд╣реЗ: рдЖрдореНрд╣реА рд╣реЗ рд╕реНрдЯреЕрдЯрд┐рдХ LoggerFactory.getLogger() рдкрджреНрдзрддреА рд╡рд╛рдкрд░реВрди рдХрд░рддреЛ. рдкрджреНрдзрдд рдкреЕрд░рд╛рдореАрдЯрд░ рд╣рд╛ рд╡рд░реНрдЧ рдЖрд╣реЗ рдЬреНрдпрд╛рдЪреЗ рдСрдкрд░реЗрд╢рди рд▓реЙрдЧ рдХреЗрд▓реЗ рдЬрд╛рдИрд▓. рдЪрд▓рд╛ рдЖрдордЪрд╛ рдХреЛрдб рдЪрд╛рд▓рд╡реВ:
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class MyTestClass {

   public static final Logger LOGGER = LoggerFactory.getLogger(MyTestClass.class);

   public static void main(String[] args) {

       LOGGER.info("Test log entry!!!");
       LOGGER.error("An error occurred!");
   }
}
рдХрдиреНрд╕реЛрд▓ рдЖрдЙрдЯрдкреБрдЯ:
ERROR StatusLogger No Log4j 2 configuration file found. Using default configuration (logging only errors to the console), or user programmatically provided configurations. Set system property 'log4j2.debug' to show Log4j 2 internal initialization logging. See https://logging.apache.org/log4j/2.x/manual/configuration.html for instructions on how to configure Log4j 2 15:49:08.907 [main] ERROR MyTestClass - An error occurred!
рдЖрдореНрд╣реА рдпреЗрдереЗ рдХрд╛рдп рдкрд╛рд╣рддреЛ? рдкреНрд░рдердо, рдЖрдореНрд╣рд╛рд▓рд╛ рдПрдХ рддреНрд░реБрдЯреА рд╕рдВрджреЗрд╢ рджрд┐рд╕рддреЛ. рд╣реЗ рдпрд╛ рд╡рд╕реНрддреБрд╕реНрдерд┐рддреАрдЪрд╛ рдкрд░рд┐рдгрд╛рдо рдЖрд╣реЗ рдХреА рдЖрддрд╛ рдЖрдордЪреНрдпрд╛рдХрдбреЗ рдЖрд╡рд╢реНрдпрдХ рд╕реЗрдЯрд┐рдВрдЧреНрдЬрдЪреА рдХрдорддрд░рддрд╛ рдЖрд╣реЗ. рддреНрдпрд╛рдиреБрд╕рд╛рд░, рдЖрдордЪрд╛ рд▓реЙрдЧрд░ рд╕рдзреНрдпрд╛ рдлрдХреНрдд рдПрд░рд░ рдореЗрд╕реЗрдЬ (ERROR) рдЖрдЙрдЯрдкреБрдЯ рдХрд░рдгреНрдпрд╛рд╕ рд╕рдХреНрд╖рдо рдЖрд╣реЗ рдЖрдгрд┐ рдлрдХреНрдд рдХрдиреНрд╕реЛрд▓рд╡рд░. logger.info () рдкрджреНрдзрдд рдХрд╛рдо рдХрд░рдд рдирд╛рд╣реА. рдкрдг logger.error() рдиреЗ рдХреЗрд▓реЗ! рдХрдиреНрд╕реЛрд▓рд╡рд░, рдЖрдореНрд╣рд╛рд▓рд╛ рд╡рд░реНрддрдорд╛рди рддрд╛рд░реАрдЦ, рддреНрд░реБрдЯреА рдЖрд▓реА рддреА рдкрджреНрдзрдд ( рдореБрдЦреНрдп), рд╢рдмреНрдж "рддреНрд░реБрдЯреА", рдЖрдгрд┐ рдЖрдордЪрд╛ рд╕рдВрджреЗрд╢! ERROR рд╣реА рд▓реЙрдЧрд┐рдВрдЧ рдкрд╛рддрд│реА рдЖрд╣реЗ. рд╕рд░реНрд╡рд╕рд╛рдзрд╛рд░рдгрдкрдгреЗ, рдЬрд░ рд▓реЙрдЧ рдПрдВрдЯреНрд░реАрд▓рд╛ "ERROR" рд╢рдмреНрджрд╛рдиреЗ рдЪрд┐рдиреНрд╣рд╛рдВрдХрд┐рдд рдХреЗрд▓реЗ рдЕрд╕реЗрд▓, рддрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдордордзреНрдпреЗ рдпрд╛ рдЯрдкреНрдкреНрдпрд╛рд╡рд░ рдПрдХ рддреНрд░реБрдЯреА рдЖрд▓реА рдЖрд╣реЗ. рдЬрд░ рдПрдВрдЯреНрд░реА "INFO" рд╢рдмреНрджрд╛рдиреЗ рдЪрд┐рдиреНрд╣рд╛рдВрдХрд┐рдд рдХреЗрд▓реА рдЕрд╕реЗрд▓, рддрд░ рд╕рдВрджреЗрд╢ рдлрдХреНрдд рдкреНрд░реЛрдЧреНрд░рд╛рдордЪреНрдпрд╛ рд╕рд╛рдорд╛рдиреНрдп рдСрдкрд░реЗрд╢рдирдмрджреНрджрд▓ рд╡рд░реНрддрдорд╛рди рдорд╛рд╣рд┐рддреА рджрд░реНрд╢рд╡рддреЛ. SLF4J рд▓рд╛рдпрдмреНрд░рд░реАрдордзреНрдпреЗ рдмрд░реЗрдЪ рднрд┐рдиреНрди рд▓реЙрдЧрд┐рдВрдЧ рд╕реНрддрд░ рдЖрд╣реЗрдд рдЬреЗ рддреБрдореНрд╣рд╛рд▓рд╛ рд▓рд╡рдЪрд┐рдХрдкрдгреЗ рд▓реЙрдЧрд┐рдВрдЧ рдХреЙрдиреНрдлрд┐рдЧрд░ рдХрд░реВ рджреЗрддрд╛рдд. рд╣реЗ рд╕рд░реНрд╡ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдгреЗ рдЦреВрдк рд╕реЛрдкреЗ рдЖрд╣реЗ: рд╕рд░реНрд╡ рдЖрд╡рд╢реНрдпрдХ рддрд░реНрдХрд╢рд╛рд╕реНрддреНрд░ рдЖрдзреАрдкрд╛рд╕реВрдирдЪ Java Logger рд╡рд░реНрдЧрд╛рдд рдЖрд╣реЗ. рдЖрдкрд▓реНрдпрд╛рд▓рд╛ рдлрдХреНрдд рд╕рдВрдмрдВрдзрд┐рдд рдкрджреНрдзрддреАрдВрдирд╛ рдХреЙрд▓ рдХрд░рдгреНрдпрд╛рдЪреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдЖрд╣реЗ. рддреБрдореНрд╣рд╛рд▓рд╛ рдирд┐рдпрдорд┐рдд рд╕рдВрджреЗрд╢ рд▓реЙрдЧ рдХрд░рд╛рдпрдЪрд╛ рдЕрд╕рд▓реНрдпрд╛рд╕, logger.info() рдкрджреНрдзрддреАрд╡рд░ рдХреЙрд▓ рдХрд░рд╛. рддреНрд░реБрдЯреА рд╕рдВрджреЗрд╢рд╛рд╕рд╛рдареА, logger.error() рд╡рд╛рдкрд░рд╛ . рдЪреЗрддрд╛рд╡рдгреАрд╕рд╛рдареА, logger.warn() рд╡рд╛рдкрд░рд╛

рдЖрддрд╛ рдНрдкреЗрдВрдбрд░рдмрджреНрджрд▓ рдмреЛрд▓реВрдпрд╛

рдЕрдкреЗрдВрдбрд░ рдореНрд╣рдгрдЬреЗ рддреБрдордЪрд╛ рдбреЗрдЯрд╛ рдЬрд┐рдереЗ рдЬрд╛рддреЛ. рдПрдХрд╛ рдкреНрд░рдХрд╛рд░реЗ, рдбреЗрдЯрд╛ рд╕реНрддреНрд░реЛрддрд╛рдЪреНрдпрд╛ рдЙрд▓рдЯ, рдореНрд╣рдгрдЬреЗ "рдмрд┐рдВрджреВ B". рдбреАрдлреЙрд▓реНрдЯрдиреБрд╕рд╛рд░, рдбреЗрдЯрд╛ рдХрдиреНрд╕реЛрд▓рд╡рд░ рдЖрдЙрдЯрдкреБрдЯ рдХреЗрд▓рд╛ рдЬрд╛рддреЛ. рд▓рдХреНрд╖рд╛рдд рдШреНрдпрд╛ рдХреА рдорд╛рдЧреАрд▓ рдЙрджрд╛рд╣рд░рдгрд╛рдордзреНрдпреЗ рдЖрдореНрд╣рд╛рд▓рд╛ рдХрд╛рд╣реАрд╣реА рдХреЙрдиреНрдлрд┐рдЧрд░ рдХрд░рд╛рд╡реЗ рд▓рд╛рдЧрд▓реЗ рдирд╛рд╣реА: рдордЬрдХреВрд░ рдХрдиреНрд╕реЛрд▓рдордзреНрдпреЗ рджрд┐рд╕рд▓рд╛ рдЖрдгрд┐ Log4j рд▓рд╛рдпрдмреНрд░рд░реАрдЪрд╛ рд▓реЙрдЧрд░ рдХрдиреНрд╕реЛрд▓рдордзреНрдпреЗ рдлрдХреНрдд рддреНрд░реБрдЯреА-рд╕реНрддрд░реАрдп рд╕рдВрджреЗрд╢ рдЖрдЙрдЯрдкреБрдЯ рдХрд░реВ рд╢рдХрддреЛ. рдЕрд░реНрдерд╛рдд, рдордЬрдХреВрд░ рдлрд╛рдЗрд▓рдордзреАрд▓ рд▓реЙрдЧ рд╡рд╛рдЪрдгреЗ рдЖрдгрд┐ рд▓рд┐рд╣рд┐рдгреЗ рд▓реЛрдХрд╛рдВрд╕рд╛рдареА рдЕрдзрд┐рдХ рд╕реЛрдпреАрдЪреЗ рдЖрд╣реЗ. рд▓реЙрдЧрд░рдЪреЗ рдбреАрдлреЙрд▓реНрдЯ рд╡рд░реНрддрди рдмрджрд▓рдгреНрдпрд╛рд╕рд╛рдареА, рдЖрдореНрд╣рд╛рд▓рд╛ рдЖрдордЪреА рдлрд╛рдИрд▓ рдНрдкреЗрдВрдбрд░ рдХреЙрдиреНрдлрд┐рдЧрд░ рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ. рдкреНрд░рд╛рд░рдВрдн рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, рддреБрдореНрд╣рд╛рд▓рд╛ рдереЗрдЯ src рдлреЛрд▓реНрдбрд░рдордзреНрдпреЗ log4j.xml рдлрд╛рдЗрд▓ рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рдЪреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдЖрд╣реЗ. рддреБрдореНрд╣реА XML рдлреЙрд░рдореЕрдЯрд╢реА рдЖрдзреАрдЪ рдкрд░рд┐рдЪрд┐рдд рдЖрд╣рд╛рдд: рдЖрдореНрд╣рд╛рд▓рд╛ рдЕрд▓реАрдХрдбреЗрдЪ рдпрд╛рдмрджреНрджрд▓ рдПрдХ рдзрдбрд╛ рдорд┐рд│рд╛рд▓рд╛ рд╣реЛрддрд╛ :) рдлрд╛рдЗрд▓рдЪреА рд╕рд╛рдордЧреНрд░реА рдпреЗрдереЗ рдЖрд╣реЗ:
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="INFO">
   <Appenders>
       <File name="MyFileAppender" fileName="C:\Users\Username\Desktop\testlog.txt" immediateFlush="false" append="false">
           <PatternLayout pattern="%d{yyy-MM-dd HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
       </File>
   </Appenders>
   <Loggers>
       <Root level="INFO">
           <AppenderRef ref="MyFileAppender"/>
       </Root>
   </Loggers>
</Configuration>
рдпреЗрдереЗ рд╡рд┐рд╢реЗрд╖рддрдГ рд╡рд┐рд╢реЗрд╖ рдХрд┐рдВрд╡рд╛ рдХрдареАрдг рдХрд╛рд╣реАрд╣реА рдирд╛рд╣реА :) рдкрд░рдВрддреБ рддрд░реАрд╣реА, рд╕рд╛рдордЧреНрд░реАрдордзреВрди рдЬрд╛рдКрдпрд╛.
<Configuration status="INFO">
рд╣реЗ рддрдерд╛рдХрдерд┐рдд рд╕реНрдЯреЗрдЯрд╕рд▓реЙрдЧрд░ рдЖрд╣реЗ. рд╣реЗ рдЖрдордЪреНрдпрд╛ рд▓реЙрдЧрд░рд╢реА рд╕рдВрдмрдВрдзрд┐рдд рдирд╛рд╣реА рдЖрдгрд┐ Log4j рдЪреНрдпрд╛ рдЕрдВрддрд░реНрдЧрдд рдкреНрд░рдХреНрд░рд┐рдпрд╛рдВрдордзреНрдпреЗ рд╡рд╛рдкрд░рд▓реЗ рдЬрд╛рддреЗ. рддреБрдореНрд╣реА рд╕реНрдЯреЗрдЯрд╕="INFO" рдРрд╡рдЬреА status="TRACE" рд╕реЗрдЯ рдХреЗрд▓реНрдпрд╛рд╕ рдЖрдгрд┐ Log4j рдЪреНрдпрд╛ рдЕрдВрддрд░реНрдЧрдд рдХрд╛рдорд╛рдмрджреНрджрд▓рдЪреА рд╕рд░реНрд╡ рдорд╛рд╣рд┐рддреА рдХрдиреНрд╕реЛрд▓рд╡рд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХреЗрд▓реА рдЬрд╛рдИрд▓ (StatusLogger рдХрдиреНрд╕реЛрд▓рд╡рд░ рдбреЗрдЯрд╛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддреЗ, рдЬрд░реА рдЖрдордЪрд╛ рдкрд░рд┐рд╢рд┐рд╖реНрдЯ рдлрд╛рдЗрд▓ рдЕрд╕реЗрд▓). рдЖрдореНрд╣рд╛рд▓рд╛ рдЖрддрд╛ рддреНрдпрд╛рдЪреА рдЧрд░рдЬ рдирд╛рд╣реА, рдореНрд╣рдгреВрди рддреЗ рдЬрд╕реЗ рдЖрд╣реЗ рддрд╕реЗ рд╕реЛрдбреВрдпрд╛.
<Appenders>
   <File name="MyFileAppender" fileName="C:\Users\Evgeny\Desktop\testlog.txt" append="true">
       <PatternLayout pattern="%d{yyy-MM-dd HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
   </File>
</Appenders>
рдпреЗрдереЗ рдЖрдкрдг рдЖрдкрд▓реЗ рдкрд░рд┐рд╢рд┐рд╖реНрдЯ рддрдпрд╛рд░ рдХрд░рддреЛ. <File> рдЯреЕрдЧ рд╕реВрдЪрд┐рдд рдХрд░рддреЛ рдХреА рддреЗ рдлрд╛рдЗрд▓ рдкрд░рд┐рд╢рд┐рд╖реНрдЯ рдЕрд╕реЗрд▓. name="MyFileAppender" рдкрд░рд┐рд╢рд┐рд╖реНрдЯрд╛рдЪреЗ рдирд╛рд╡ рд╕реЗрдЯ рдХрд░рддреЗ. fileName="C:\Users\Username\Desktop\testlog.txt" рд▓реЙрдЧ рдлрд╛рдЗрд▓рдЪрд╛ рдорд╛рд░реНрдЧ рд╕реВрдЪрд┐рдд рдХрд░рддреЛ рдЬрд┐рдереЗ рд╕рд░реНрд╡ рдбреЗрдЯрд╛ рд▓рд┐рд╣рд┐рд▓рд╛ рдЬрд╛рдИрд▓. append="true" рдлрд╛рдИрд▓рдЪреНрдпрд╛ рд╢реЗрд╡рдЯреА рдбреЗрдЯрд╛ рд▓рд┐рд╣рд╛рд╡рд╛ рдХреА рдирд╛рд╣реА рд╣реЗ рд╕реВрдЪрд┐рдд рдХрд░рддреЗ. рдЖрдордЪреНрдпрд╛ рдмрд╛рдмрддреАрдд, рдЖрдореНрд╣реА рд╣реЗрдЪ рдХрд░реВ. рддреБрдореНрд╣реА рд╡реНрд╣реЕрд▓реНрдпреВ рдЕрд╕рддреНрдп рд╡рд░ рд╕реЗрдЯ рдХреЗрд▓реНрдпрд╛рд╕, рдкреНрд░рддреНрдпреЗрдХ рд╡реЗрд│реА рдкреНрд░реЛрдЧреНрд░рд╛рдо рд╕реБрд░реВ рдЭрд╛рд▓реНрдпрд╛рд╡рд░ рд▓реЙрдЧ рдлрд╛рдЗрд▓рдЪреА рдЬреБрдиреА рд╕рд╛рдордЧреНрд░реА рд╣рдЯрд╡рд▓реА рдЬрд╛рдИрд▓. <PatternLayout pattern="%d{yyy-MM-dd HH:mm:ss.SSS} [%t] %-5 рд╕реНрддрд░ %рд▓реЙрдЧрд░{36} - %msg%n"/>рд╕реНрд╡рд░реВрдкрди рд╕реЗрдЯрд┐рдВрдЧреНрдЬ рд╕реВрдЪрд┐рдд рдХрд░рддреЗ. рдЖрдордЪреНрдпрд╛ рд▓реЙрдЧрдордзреНрдпреЗ рдордЬрдХреВрд░ рдХрд╕рд╛ рдлреЙрд░рдореЕрдЯ рдХреЗрд▓рд╛ рдЬрд╛рддреЛ рд╣реЗ рд╕рд╛рдиреБрдХреВрд▓ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдпреЗрдереЗ рдЖрдореНрд╣реА рд░реЗрдЧреНрдпреБрд▓рд░ рдПрдХреНрд╕рдкреНрд░реЗрд╢рди рд╡рд╛рдкрд░реВ рд╢рдХрддреЛ.
<Loggers>
       <Root level="INFO">
           <AppenderRef ref="MyFileAppender"/>
       </Root>
</Loggers>
рдпреЗрдереЗ рдЖрдореНрд╣реА рдореВрд│ рдкрд╛рддрд│реА рджрд░реНрд╢рд╡рд┐рддреЛ. рдЖрдореНрд╣реА "INFO" рдкрд╛рддрд│реА рд╕реЗрдЯ рдХреЗрд▓реА рдЖрд╣реЗ, рдпрд╛рдЪрд╛ рдЕрд░реНрде рд╕рд░реНрд╡ рд╕рдВрджреЗрд╢ рдЬреНрдпрд╛рдВрдЪреЗ рд╕реНрддрд░ INFO рдкреЗрдХреНрд╖рд╛ рдЬрд╛рд╕реНрдд рдЖрд╣реЗрдд (рдЖрдореНрд╣реА рд╡рд░ рдкрд╛рд╣рд┐рд▓реЗрд▓реНрдпрд╛ рд╕рд╛рд░рдгреАрдиреБрд╕рд╛рд░) рд▓реЙрдЧ рдХреЗрд▓реЗ рдЬрд╛рдгрд╛рд░ рдирд╛рд╣реАрдд. рдЖрдордЪреНрдпрд╛ рдкреНрд░реЛрдЧреНрд░рд╛рдордордзреНрдпреЗ 3 рд╕рдВрджреЗрд╢ рдЕрд╕рддреАрд▓: рдПрдХ рдорд╛рд╣рд┐рддреА, рдПрдХ рдЪреЗрддрд╛рд╡рдгреА рдЖрдгрд┐ рдПрдХ рддреНрд░реБрдЯреА. рд╕рдзреНрдпрд╛рдЪреНрдпрд╛ рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рдирд╕рд╣, рд╕рд░реНрд╡ 3 рд╕рдВрджреЗрд╢ рд▓реЙрдЧ рдХреЗрд▓реЗ рдЬрд╛рддреАрд▓. рддреБрдореНрд╣реА рд░реВрдЯ рд▓реЗрд╡реНрд╣рд▓ ERROR рдордзреНрдпреЗ рдмрджрд▓рд▓реНрдпрд╛рд╕, рд▓реЙрдЧрдордзреНрдпреЗ рдлрдХреНрдд LOGGER.error() рдореЗрдердб рдХреЙрд▓рдЪрд╛ рд╢реЗрд╡рдЯрдЪрд╛ рдореЗрд╕реЗрдЬ рдпреЗрдИрд▓. рдпрд╛рд╡реНрдпрддрд┐рд░рд┐рдХреНрдд, рдкрд░рд┐рд╢рд┐рд╖реНрдЯрд╛рдЪрд╛ рд╕рдВрджрд░реНрдн рджреЗрдЦреАрд▓ рдпреЗрдереЗ рдЬрд╛рддреЛ. рдЕрд╕рд╛ рд╕рдВрджрд░реНрдн рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, рддреБрдореНрд╣рд╛рд▓рд╛ <Root> рдЯреЕрдЧрдордзреНрдпреЗ <ApprenderRef> рдЯреЕрдЧ рддрдпрд╛рд░ рдХрд░рд╛рд╡рд╛ рд▓рд╛рдЧреЗрд▓ рдЖрдгрд┐ рддреНрдпрд╛рдд ref='your appender's name' рд╡рд┐рд╢реЗрд╖рддрд╛ рдЬреЛрдбрд╛рд╡реА рд▓рд╛рдЧреЗрд▓. рдЬрд░ рддреБрдореНрд╣реА рд╡рд┐рд╕рд░рд▓рд╛рдд рддрд░, рдпреЗрдереЗ рдЖрдореНрд╣реА рдкрд░рд┐рд╢рд┐рд╖реНрдЯрд╛рдЪреЗ рдирд╛рд╡ рд╕реЗрдЯ рдХрд░рддреЛ: <. рдЖрдгрд┐ рд╣рд╛ рдЖрдордЪрд╛ рдХреЛрдб рдЖрд╣реЗ!
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class MyTestClass {

   public static final Logger LOGGER = LoggerFactory.getLogger(MyTestClass.class);

   public static void main(String[] args) {

       LOGGER.info("The program is starting!!!");

       try {
           LOGGER.warn("Attention! The program is trying to divide a number by another.
           System.out.println(12/0);
       } catch (ArithmeticException x) {

           LOGGER.error("Error! Division by zero!");
       }
   }
}
рдЕрд░реНрдерд╛рдд, рд╣реЗ рдереЛрдбреЗ рд╡рд┐рдЪрд┐рддреНрд░ рдЖрд╣реЗ (рдПрдХ RuntimeException рдкрдХрдбрдгреЗ рд╣реА рдПрдХ рд╢рдВрдХрд╛рд╕реНрдкрдж рдХрд▓реНрдкрдирд╛ рдЖрд╣реЗ), рдкрд░рдВрддреБ рддреА рдЖрдордЪреНрдпрд╛ рдЙрджреНрджреЗрд╢рд╛рдВрд╕рд╛рдареА рдпреЛрдЧреНрдп рдЖрд╣реЗ :) рдЪрд▓рд╛ рдЖрдордЪреА main() рдкрджреНрдзрдд рд╕рд▓рдЧ рек рд╡реЗрд│рд╛ рдЪрд╛рд▓рд╡реВ рдЖрдгрд┐ testlog.txt рдлрд╛рдЗрд▓ рдкрд╛рд╣реВ. рддреБрдореНрд╣рд╛рд▓рд╛ рддреЗ рдЖрдЧрд╛рдК рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рдЪреА рдЧрд░рдЬ рдирд╛рд╣реА: рд▓рд╛рдпрдмреНрд░рд░реА рд╣реЗ рдЖрдкреЛрдЖрдк рдХрд░реЗрд▓. рд╕рд░реНрд╡ рдХрд╛рд╣реА рдХрд╛рдо рдХреЗрд▓реЗ! :) рдЖрддрд╛ рддреБрдордЪреНрдпрд╛рдХрдбреЗ рдХреЙрдиреНрдлрд┐рдЧрд░ рдХреЗрд▓реЗрд▓рд╛ рд▓реЙрдЧрд░ рдЖрд╣реЗ. рдкреНрд░рддреНрдпреЗрдХ рдкрджреНрдзрддреАрдордзреНрдпреЗ рд▓реЙрдЧрд░ рдХреЙрд▓ рдЬреЛрдбреВрди рддреБрдореНрд╣реА рддреБрдордЪреНрдпрд╛ рдХрд╛рд╣реА рдЬреБрдиреНрдпрд╛ рдкреНрд░реЛрдЧреНрд░рд╛рдореНрд╕рд╕рд╣ рдЦреЗрд│реВ рд╢рдХрддрд╛. рдирдВрддрд░ рдкрд░рд┐рдгрд╛рдореА рд▓реЙрдЧ рдкрд╣рд╛ :) рд╣реЗ рд▓реЙрдЧ рдЗрди рдЦреЛрд▓реАрдЪреНрдпрд╛ рд╡рд┐рд╖рдпрд╛рд╡рд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рддреЗ. рд╣реЗ рд╕рд░реНрд╡ рдПрдХрд╛рдЪ рдмреИрдардХреАрдд рд╡рд╛рдЪрдгреЗ рдЖрд╡реНрд╣рд╛рдирд╛рддреНрдордХ рдЕрд╕реЗрд▓. рддреЗ рдореНрд╣рдгрд╛рд▓реЗ, рддреНрдпрд╛рдд рдмрд░реАрдЪ рдЕрддрд┐рд░рд┐рдХреНрдд рдЙрдкрдпреБрдХреНрдд рдорд╛рд╣рд┐рддреА рдЖрд╣реЗ. рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рддреБрдореНрд╣реА рд▓реЙрдЧрд░ рдХрд╕реЗ рдХреЙрдиреНрдлрд┐рдЧрд░ рдХрд░рд╛рдпрдЪреЗ рддреЗ рд╢рд┐рдХрд╛рд▓ рдЬреЗрдгреЗрдХрд░реВрди рдЖрдордЪреА testlog.txt рдлрд╛рдЗрд▓ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЖрдХрд╛рд░рд╛рдкрд░реНрдпрдВрдд рдкреЛрд╣реЛрдЪрд▓реНрдпрд╛рд╕ рддреА рдирд╡реАрди рдордЬрдХреВрд░ рдлрд╛рдЗрд▓ рддрдпрд╛рд░ рдХрд░реЗрд▓ :) рдЖрдгрд┐ рддреНрдпрд╛рдореБрд│реЗ рдЖрдордЪрд╛ рд╡рд░реНрдЧ рд╕рдВрдкреЗрд▓! рдЖрдЬ рддреБрдореНтАНрд╣рд╛рд▓рд╛ рдПрдХрд╛ рдЕрддрд┐рд╢рдп рдорд╣рддреНтАНрддреНтАНрд╡рд╛рдЪреНтАНрдпрд╛ рд╡рд┐рд╖рдпрд╛рдЪреА рдУрд│рдЦ рдЭрд╛рд▓реА рдЖрд╣реЗ рдЖрдгрд┐ рд╣реЗ рдЬреНрдЮрд╛рди рддреБрдордЪреНтАНрдпрд╛ рднрд╛рд╡реА рдХрд╛рд░реНрдпрд╛рдд рддреБрдореНтАНрд╣рд╛рд▓рд╛ рдирдХреНрдХреАрдЪ рдЙрдкрдпреЛрдЧреА рдкрдбреЗрд▓. рдкреБрдврдЪреНрдпрд╛ рд╡реЗрд│реЗ рдкрд░реНрдпрдВрдд! :)
рдЯрд┐рдкреНрдкрдгреНрдпрд╛
  • рд▓реЛрдХрдкреНрд░рд┐рдп
  • рдирд╡реАрди
  • рдЬреБрдиреЗ
рдЯрд┐рдкреНрдкрдгреА рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рддреБрдореНрд╣реА рд╕рд╛рдИрди рдЗрди рдХреЗрд▓реЗрд▓реЗ рдЕрд╕рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ
рдпрд╛ рдкрд╛рдирд╛рд╡рд░ рдЕрдЬреВрди рдХреЛрдгрддреНрдпрд╛рд╣реА рдЯрд┐рдкреНрдкрдгреНрдпрд╛ рдирд╛рд╣реАрдд