Log4j 1.x рддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдФрд░ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдореЛрдб рдореЗрдВ рдкреНрд░рджрд░реНрд╢рди

рд╢реБрдн рджрд┐рди, рд╣реНрд░рдЬрд╝рд┐рддрд▓реА!

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

рдЗрд╕рдиреЗ рдореБрдЭреЗ рдЗрд╕ рдЕрдзреНрдпрдпрди рдХреЗ рд▓рд┐рдП рдкреНрд░реЗрд░рд┐рдд рдХрд┐рдпрд╛ - рдХреНрдпрд╛ рд▓реЙрдЧрд┐рдВрдЧ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рд╣реИ?

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

рдХрдЯ рдХреЗ рдиреАрдЪреЗ рд╕рд╛рд╡рдзрд╛рдиреА, рдпрд╛рддрд╛рдпрд╛рддред

рдХреНрдпрд╛ рдХрд╛рд░рдг рд╣реИ?


рд╣рдореЗрд╢рд╛ рдХреА рддрд░рд╣, рдХрд╛рд░рдг рдЖрдо рд╣реИ - "рдкреНрд░рддрд┐рд╕реНрдкрд░реНрдзреА рдкрд╣реБрдВрдЪ"ред рд╕рдорд╛рдирд╛рдВрддрд░ рдереНрд░реЗрдбреНрд╕ рдХреА рдПрдХ рдлреНрд▓реЛрдЯрд┐рдВрдЧ рд╕рдВрдЦреНрдпрд╛ рдХреЗ рд╕рд╛рде рдХрдИ рдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рдмрд╛рдж, рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реЛ рдЧрдпрд╛ рдХрд┐ рд▓реЙрдЧрд┐рдВрдЧ рдХреЙрд▓ рдХрд╛ рдХрд╛рд░реНрдп рд╕рдордп рд░реИрдЦрд┐рдХ рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрдЙрдЯрдкреБрдЯ рдпрд╣ рд╣реИ рдХрд┐ рд╣рд╛рд░реНрдб рдбреНрд░рд╛рдЗрд╡ рдмрд╣реБрдд рдХреБрдЫ рдЦреЛ рджреЗрддрд╛ рд╣реИред

рдпрд╣рд╛рдБ рдорд╛рдк рдкрд░рд┐рдгрд╛рдо рд╣реИрдВ:


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


рд▓реЙрдЧрд┐рдВрдЧ рдХреЗ рдЕрдиреНрдп рддрд░реАрдХреЛрдВ рдХреА рддрд▓рд╛рд╢ рдХрд░реЗрдВ, рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЛ рдЕрдкрдЧреНрд░реЗрдб рдХрд░реЗрдВ, рдЖрдк рдпрд╣ рд╕рдм рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдХрд╛рд░реНрдп рдиреНрдпреВрдирддрдо рдкреНрд░рдпрд╛рд╕реЛрдВ рдХреЗ рд╕рд╛рде рдЕрдзрд┐рдХрддрдо рдкрд░рд┐рдгрд╛рдо рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рд╣реИред рдореИрдВ log4j 2 рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рднреА рдмрддрд╛ рд╕рдХрддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рдПрдХ рдЕрд▓рдЧ рд▓реЗрдЦ рд╣реЛрдЧрд╛ред рдЕрдм рд╣рдо log4j 1.x рдореЗрдВ "рдмреЙрдХреНрд╕ рд╕реЗ рдмрд╛рд╣рд░" рдкреНрд░рджрд╛рди рдХрд┐рдП рдЧрдП рд╕рд╛рдзрдиреЛрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВрдЧреЗред

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

рдорд╛рдк


рдЕрдм рдЬрдм рджреГрд╖реНрдЯрд┐рдХреЛрдг рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ рд╣рдореЗрдВ рдпрд╣ рд╕рдордЭрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХрд┐рддрдирд╛ рдкреНрд░рднрд╛рд╡реА рд╣реИ, рдЗрд╕рдХреЗ рд▓рд┐рдП рд╣рдо рдЙрдкрдпреБрдХреНрдд рдорд╛рдк рдХрд░реЗрдВрдЧреЗред

рд╣рдо рдЗрд╕ рддрд░рд╣ рдорд╛рдкреЗрдВрдЧреЗ:
0) рдореИрдВрдиреЗ рдЖрдкрдХреЛ рдкрд╣рд▓реЗ рд╣реА рдЪреЗрддрд╛рд╡рдиреА рджреА рдереА, "рдореИрдВрдиреЗ рд╕реБрдВрджрд░ рдбреЗрдЯрд╛ рдирд╣реАрдВ рдмрдирд╛рдпрд╛ рд╣реИ", рдХреБрдЫ рдЬрдЧрд╣реЛрдВ рдкрд░ рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ рдкреНрд░реЛрд╕реЗрд╕рд░ рджреВрд╕рд░реЗ рдХрд╛рдо рдореЗрдВ рдмрджрд▓ рдЧрдпрд╛ рд╣реИ, рдФрд░ рдореИрдВрдиреЗ рдЗрди рд╕реНрдерд╛рдиреЛрдВ рдХреЛ рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣ рдерд╛ред рдпрд╣ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдХрд╛рд░реНрдп рдХрд╛ рднреА рд╣рд┐рд╕реНрд╕рд╛ рд╣реИред
1) рд╣рдо рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЛ 3 рд╕рдореВрд╣реЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рддреЗ рд╣реИрдВ:
- 10 рд▓реЙрдЧрд┐рдВрдЧ рдЗрд╡реЗрдВрдЯ (1 рд╕реЗ 10 рдХреА рд╡реЗрддрди рд╡реГрджреНрдзрд┐ рдореЗрдВ)
- 550 рд▓реЙрдЧрд┐рдВрдЧ рдЗрд╡реЗрдВрдЯ (10 рд╕реЗ 100 рд╕реЗ 10 рдХреА рд╡реЗрддрди рд╡реГрджреНрдзрд┐ рдореЗрдВ)
- 5500 рд▓реЙрдЧрд┐рдВрдЧ рдЗрд╡реЗрдВрдЯреНрд╕ (100 рд╕реЗ 1000 рдХреА рд╡реЗрддрди рд╡реГрджреНрдзрд┐ рдореЗрдВ)
2) рдкреНрд░рддреНрдпреЗрдХ рд╕рдореВрд╣ рдореЗрдВ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ 3 рдЙрдкрд╕рдореВрд╣ рд╣реЛрдВрдЧреЗ - рдмрдлрд░ рдХреЗ рдЖрдХрд╛рд░ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ (рдЗрд╖реНрдЯрддрдо рдХреЛ рдЦреЛрдЬрдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ):
- 500 рдЗрд╡реЗрдВрдЯ
- 1500 рдЗрд╡реЗрдВрдЯ
- 5000 рдЗрд╡реЗрдВрдЯ
3) рдЯреЗрд╕реНрдЯ рдХреЛ рд╕рд┐рдВрдХреНрд░реЛрдирд╛рдЗрдЬрд╝ рдФрд░ рдПрд╕рд┐рдВрдХреНрд░реЛрдирд╕ рддрд░реАрдХреЗ рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рд╕рд┐рдВрдХреНрд░реЛрдирд╕ рд▓реЙрдЧрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd" > <log4j:configuration> <appender name="fileAppender" class="org.apache.log4j.FileAppender"> <param name="file" value="st.log"/> <layout class="org.apache.log4j.PatternLayout"> <param name="ConversionPattern" value="%d{ABSOLUTE} %5p %t %c{1}:%M:%L - %m%n"/> </layout> </appender> <root> <priority value="info" /> <appender-ref ref="fileAppender"/> </root> </log4j:configuration> 


рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рд▓рдХрдбрд╝рд╣рд╛рд░рд╛ рд╡рд┐рдиреНрдпрд╛рд╕
 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd" > <log4j:configuration> <appender name="fileAppender" class="org.apache.log4j.FileAppender"> <param name="file" value="st.log"/> <layout class="org.apache.log4j.PatternLayout"> <param name="ConversionPattern" value="%d{ABSOLUTE} %5p %t %c{1}:%M:%L - %m%n"/> </layout> </appender> <appender name="ASYNC" class="org.apache.log4j.AsyncAppender"> <param name="BufferSize" value="500"/> <appender-ref ref="fileAppender"/> </appender> <root> <priority value="info" /> <appender-ref ref="ASYNC"/> </root> </log4j:configuration> 


4) рдкрд░реАрдХреНрд╖рдг рд╕реНрд╡рдпрдВ рд╕рд░рд▓ рд▓реЙрдЧрд┐рдВрдЧ рдХреЙрд▓ "рд░реИрдВрдбрдо рдСрдкрд░реЗрд╢рди" (1 рд╕реЗ 15 рдПрдордПрд╕ рддрдХ рдХреА рдЕрд╡рдзрд┐, рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╡реИрдХрд▓реНрдкрд┐рдХ рд░реВрдк рд╕реЗ рдПрдХреНрд╕реЗрд╕ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП) рдХреЗ рд╕рд╛рде рдЗрдВрдЯрд░рдкреНрд░реЗрдЯ рдХрд┐рдП рдЧрдП рд╣реИрдВред
рд╕реНрд░реЛрдд рдХреЛрдб рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░реЗрдВ
 package com.ice.logger_test; import org.apache.commons.lang3.time.StopWatch; import org.apache.log4j.Logger; import java.util.Random; public class SimpleTest { private static Logger logger = Logger.getLogger(SimpleTest.class); private static double NANOS_TO_SEC = 1000000000.0d; private static String LOG_MESSAGE = "One hundred bytes log message for performing some tests using sync/async appenders of log4j library"; public static void main(String[] args) throws InterruptedException { //performTest("Single thread"); ThreadRunner t1 = new ThreadRunner(); new Thread(t1).start(); new Thread(t1).start(); new Thread(t1).start(); new Thread(t1).start(); new Thread(t1).start(); new Thread(t1).start(); new Thread(t1).start(); new Thread(t1).start(); new Thread(t1).start(); new Thread(t1).start(); } private static void performTest(String message) throws InterruptedException { logger.info("Warm-up..."); logger.info("Warm-up..."); logger.info("Warm-up..."); StopWatch timer = new StopWatch(); Random ran = new Random(); for(int i = 1; i <= 10000; i += getIncrementator(i)) { timer.reset(); timer.start(); int iterations = 0; for(int j = 1; j <= i; j++) { timer.suspend(); Thread.sleep(ran.nextInt(15)+1); // some work timer.resume(); logger.info(LOG_MESSAGE); timer.suspend(); Thread.sleep(ran.nextInt(15)+1); // some work timer.resume(); iterations = j; } timer.stop(); System.out.printf(message + " %d iteration(s) %f sec\n", iterations, (timer.getNanoTime() / NANOS_TO_SEC)); } } private static int getIncrementator(int i) { if(i >= 0 && i < 10) return 1; if(i >= 10 && i < 100) return 10; if(i >= 100 && i < 1000) return 100; if(i >= 1000 && i < 10000) return 1000; if(i >= 10000 && i <= 100000) return 10000; return 0; } static class ThreadRunner implements Runnable { @Override public void run() { try { performTest(Thread.currentThread().getName()); } catch (InterruptedException e) { e.printStackTrace(); } } } } 


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

рддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рд╢реБрд░реБрдЖрдд, 2 рдзрд╛рдЧреЗ
рдкрд╣рд▓реЗ, рдЖрдЗрдП рджреЗрдЦреЗрдВ рдХрд┐ рд▓рдХрдбрд╝рд╣рд╛рд░рд╛ рдПрдХ рд╕рдордХрд╛рд▓рд┐рдХ рд╡рд┐рдиреНрдпрд╛рд╕ рдореЗрдВ рдХреИрд╕реЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рддрд╛ рд╣реИред 2 рдереНрд░реЗрдбреНрд╕ рдкрд░ рд╕рднреА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪрд▓рд╛рдПрдБред
рдпрд╣рд╛рдБ рдкрд░рд┐рдгрд╛рдо рд╣реИрдВ:


рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рд╢реБрд░реБрдЖрдд, 2 рдзрд╛рдЧреЗ
рдмрдлрд░ = 500
рдЕрдм рдПрд╕рд┐рдВрдХреНрд░реЛрдирд╕ рдореЛрдб рдкрд░ рдЬрд╛рдПрдВ рдФрд░ рдЙрд╕реА рд╕рдордп рдЗрд╖реНрдЯрддрдо рдмрдлрд░ рдЦреЛрдЬрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВ, 500 рд╕реЗ рд╢реБрд░реВ рдХрд░реЗрдВ


рдмрдлрд░ = 1500
рдмрдлрд╝рд░ рдХреЛ 3 рдмрд╛рд░ рдмрдврд╝рд╛рдПрдВ рдФрд░ рд╕рдорд╛рди рдкрд░реАрдХреНрд╖рдг рдХрд░реЗрдВ:


рдмрдлрд░ = 5000
рдЪрд▓реЛ рдмрдлрд░ рдХреЛ 10 рдЧреБрдирд╛ рдмрдврд╝рд╛рддреЗ рд╣реИрдВ рдФрд░ рдПрдХ рд╣реА рдкрд░реАрдХреНрд╖рдг рдХрд░рддреЗ рд╣реИрдВ:


2 рдзрд╛рдЧреЗ рдХреЗ рд▓рд┐рдП рдХреБрд▓
рдЕрдм рд╕реНрдкрд╖реНрдЯрддрд╛ рдХреЗ рд▓рд┐рдП, рдореИрдВ рд╕рднреА рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ (рдЗрд╖реНрдЯрддрдо рдмрдлрд░ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП) рдФрд░ рддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ (рд╕реНрдкрд╖реНрдЯрддрд╛ рдХреЗ рд▓рд┐рдП, рдпрд╣ рдЬреАрддрд╛ рдЧрдпрд╛ рджрд┐рд▓рдЪрд╕реНрдк рд╣реИ) рдПрдХ рдЖрд░реЗрдЦ рдореЗрдВ рдкрд░реАрдХреНрд╖рдг рдПрдХрддреНрд░ рдХрд░реЗрдЧрд╛:

рдЕрдм рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдПрд╕рд┐рдВрдХреНрд░реЛрдирд╕ рдореЛрдб рдореЗрдВ рддреНрд╡рд░рдг рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИред
рд▓реЗрдХрд┐рди рдирд┐рд╖реНрдХрд░реНрд╖ рдирд┐рдХрд╛рд▓рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдЖрдЗрдП 5 рдФрд░ 10 рдереНрд░реЗрдбреНрд╕ рдкрд░ рд╣рдорд╛рд░реЗ рдкрд░реАрдХреНрд╖рдг рджреЛрд╣рд░рд╛рдПрдВред

рддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рд╢реБрд░реБрдЖрдд, 5 рдзрд╛рдЧреЗ


рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рд╢реБрд░реБрдЖрдд, 5 рдзрд╛рдЧреЗ
рдмрдлрд░ = 500


рдмрдлрд░ = 1500


рдмрдлрд░ = 5000


5 рдзрд╛рдЧреЗ рдХреЗ рд▓рд┐рдП рдХреБрд▓


рддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рд╢реБрд░реБрдЖрдд, 10 рдзрд╛рдЧреЗ

рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рд╢реБрд░реБрдЖрдд, 10 рдзрд╛рдЧреЗ
рдмрдлрд░ = 500


рдмрдлрд░ = 1500


рдмрдлрд░ = 5000


10 рдзрд╛рдЧреЗ рдХреЗ рд▓рд┐рдП рдкрд░рд┐рдгрд╛рдо







рдирд┐рд╖реНрдХрд░реНрд╖, рдЬреИрд╕рд╛ рдХрд┐ рд╡реЗ рдХрд╣рддреЗ рд╣реИрдВ, рдЪреЗрд╣рд░реЗ рдкрд░ред
рдЪреВрдВрдХрд┐ рдЕрдм рд╣рдо рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд▓реЙрдЧрд┐рдВрдЧ рдХреА рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рд╡рд┐рдзрд┐ рдХреЗ рд▓рд╛рдн рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рддреЛ рдЖрдЗрдП рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреА рдорд╛рддреНрд░рд╛ 10 рдЧреБрдирд╛ рдмрдврд╝рд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВред 55,000 рд▓реЙрдЧрд┐рдВрдЧ рдЗрд╡реЗрдВрдЯ (1000 рд╕реЗ 10000 рд╕реЗ 1000 рдХреА рд╡реЗрддрди рд╡реГрджреНрдзрд┐ рдореЗрдВ) рдХреЗ рд▓рд┐рдП рдПрдХ рдкрд░реАрдХреНрд╖рдг рдЬреЛрдбрд╝реЗрдВред рд╣рдо рдмрдлрд░ рдХреЛ 500 рдХреЗ рдмрд░рд╛рдмрд░ рд▓реЗрддреЗ рд╣реИрдВ (рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдкрд╣рд▓реА рдирдЬрд╝рд░ рдореЗрдВ рд╣реИ, рдФрд░ рдмрд╛рдж рдореЗрдВ рдпрд╣ рд╕рд╛рдмрд┐рдд рд╣реЛ рдЬрд╛рдПрдЧрд╛, рд╣рдорд╛рд░реЗ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдореЗрдВ рд╕рдмрд╕реЗ рдЗрд╖реНрдЯрддрдо рд╣реИ)ред

рддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рд╢реБрд░реБрдЖрдд, рдбреЗрдЯрд╛ рдХреЗ рдмрдбрд╝реЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдкрд░ 10 рдзрд╛рд░рд╛рдПрдВ





рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рд╢реБрд░реБрдЖрдд, рдмрдбрд╝реА рдорд╛рддреНрд░рд╛ рдореЗрдВ рдбреЗрдЯрд╛ рдкрд░ 10 рдзрд╛рдЧреЗ





рдмрдбрд╝реА рдорд╛рддреНрд░рд╛ рдореЗрдВ рдбреЗрдЯрд╛ рдкрд░ 10 рдереНрд░реЗрдбреНрд╕ рдХреЗ рд▓рд┐рдП рдкрд░рд┐рдгрд╛рдо





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






5 рдзрд╛рдЧреЗ






10 рдзрд╛рдЧреЗ






10 рдереНрд░реЗрдбреНрд╕, рдмрдбрд╝реА рдорд╛рддреНрд░рд╛ рдореЗрдВ рдкрд░реАрдХреНрд╖рдг



рдХреБрд▓ - 500 рдШрдЯрдирд╛рдУрдВ , рдпрд╣ рд╣рдорд╛рд░рд╛ рдмрдлрд░ рд╣реИ рдЬреЛ рд╣рдореЗрдВ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдореЛрдб рдореЗрдВ рд╕рдмрд╕реЗ рдХреБрд╢рд▓рддрд╛ рд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
рдФрд░ рдЕрдм рдпрджрд┐ рдЖрдк рд╕рднреА рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рдХреБрд▓ (рдпрд╛ рдФрд╕рдд) рд░рдирдЯрд╛рдЗрдо рдХреА рддреБрд▓рдирд╛ рднреА рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдПрдХ рд╕реНрдерд┐рд░ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рд╕рд┐рдВрдХреНрд░реЛрдирд╕ рд╕реЗ рдкрд╣рд▓реЗ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдореЛрдб рдХреЗ рдЬреАрддрдиреЗ рдХрд╛ рдХреНрд░рдо рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдореЗрд░реЗ рдкрд╛рд╕ рдпрд╣ рд╣реИ - 8.9 (рдмрд╛рд░) ред

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


рдЙрдкрд░реЛрдХреНрдд рд╕рд╛рдордЧреНрд░реА рдпрд╣ рд╕реНрдкрд╖реНрдЯ рдХрд░рддреА рд╣реИ рдХрд┐ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рд▓реЙрдЧрд┐рдВрдЧ рд░рдгрдиреАрддрд┐ рдПрдХ рдкреНрд░рджрд░реНрд╢рди рд▓рд╛рдн рджреЗрддреА рд╣реИред рдлрд┐рд░ рд╕рд╡рд╛рд▓ рднреАрдЦ рдорд╛рдБрдЧрддрд╛ рд╣реИ - рд╣рдореЗрд╢рд╛ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреНрдпреЛрдВ рди рдХрд░реЗрдВ? рдХрд┐рд╕реА рд╡рд┐рд╢реЗрд╖ рд╡рд┐рдзрд┐ рдХреЗ рдкрдХреНрд╖ рдореЗрдВ рдПрдХ рд╡рд┐рдХрд▓реНрдк рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдЙрди рддрдВрддреНрд░реЛрдВ рдХреА рдХрд▓реНрдкрдирд╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬреЛ рдЕрдВрджрд░ рдЫрд┐рдкреЗ рд╣реБрдП рд╣реИрдВред рдиреАрдЪреЗ рдСрдлрд╕рд╛рдЗрдЯ рд╕реЗ рдХреБрдЫ рд╕рд╛рд░ рд▓рд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:
1) AsyncAppender рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдереНрд░реЗрдб рд╕реЗ рд╕рдВрдЪрд╛рд▓рд┐рдд рд╣реЛрддрд╛ рд╣реИ (рдЬрдмрдХрд┐ FileAppender рд╕реНрд╡рдпрдВ рд╡рд░реНрддрдорд╛рди рдереНрд░реЗрдб рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рдЪрд▓рддрд╛ рд╣реИ), рдЗрд╕рд▓рд┐рдП, рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп, рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕рд░реНрд╡рд░ рдереНрд░реЗрдбреНрд╕ рдХреА рд╕реАрдорд╛ рдХреЛ рдмрдврд╝рд╛рдирд╛ рд╡рд╛рдВрдЫрдиреАрдп рд╣реИред
2) AsyncAppender рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп, рдореЗрдореЛрд░реА рдХреЗ рд▓рд┐рдП рдУрд╡рд░рд╣реЗрдб рд╣реЛрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд▓реЙрдЧрд┐рдВрдЧ рдЗрд╡реЗрдВрдЯреНрд╕ рдХреЛ рддреБрд░рдВрдд рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдбрдВрдк рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдмрдлрд░ рднрд░рдиреЗ рдХреЗ рдмрд╛рджред
3) рд▓реЙрдЧ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рд▓реЙрдХ рд╕рд┐рдВрдХреНрд░реЛрдирд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрдзрд┐рдХ рд╕рдордп рддрдХ рд░рд╣рддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╕рдВрджреЗрд╢ рдмрдлрд░ рдореЗрдВ рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рд╣реЛрддреА рд╣реИред
рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ, рд╕рдм рдХреБрдЫ prosaic рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣рд╛рдВ рдЖрдкрдХреЛ рдпрд╣ рд╕рдордЭрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ рд╕рд┐рдВрдХреНрд░реЛрдирд╛рдЗрдЬрд╝реЗрд╢рди рд╕реНрд╡рдпрдВ рднреА рдПрдХ рд▓реЙрдХ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕реЗ рдПрдХ рд╕реНрдерд╛рди рд╕реЗ рджреВрд╕рд░реЗ рд╕реНрдерд╛рди рдкрд░ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ, рдЗрд╕рд╕реЗ рдпрд╣ рдмрджрддрд░ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред

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

рдЗрд╕ рд▓реЗрдЦ рдХрд╛ рдПрдХреНрд╕реЗрд▓ рд╕рдВрд╕реНрдХрд░рдг:
docs.google.com/spreadsheet/ccc?key=0AkyN15vTZD-ddHV0Y3p4QVUxTXVZRldPcU0tNzNucWc&usp=sharing
docs.google.com/spreadsheet/ccc?key=0AkyN15vTZD-ddFhGakZsVWRjV1AxeGljdDczQjdNbnc&usp=sharing

рдЖрдкрдХрд╛ рдзреНрдпрд╛рди рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рд▓реЗрдЦ рдЖрдкрдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧрд╛ред
рдПрдХ рдЙрддреНрдкрд╛рджрдХ рд╕рдкреНрддрд╛рд╣ рд╣реИ!

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


All Articles