Java / рдХреНрд╡рд┐рдХ рд╕реНрдЯрд╛рд░реНрдЯ рдореЗрдВ рд▓реЙрдЧ рдЗрди рдХрд░рдирд╛

рдбреЗрдЯрд╛рдЖрд░реНрдЯ рдореЗрдВ рдЕрдкрдиреЗ рдХрд╛рдо рдХреЗ рджреМрд░рд╛рди, рдореИрдВ, рдЕрдиреНрдп рдмрд╛рддреЛрдВ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╕рд▓рд╛рд╣ рджреЗрдиреЗ рдореЗрдВ рд╕рдВрд▓рдЧреНрди рд╣реВрдВред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рдЗрд╕рдореЗрдВ рдкреНрд░рд╢рд┐рдХреНрд╖реБрдУрдВ рджреНрд╡рд╛рд░рд╛ рдХрд┐рдП рдЧрдП рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдХрд╛рд░реНрдп рдХреА рдЬрд╛рдБрдЪ рд╢рд╛рдорд┐рд▓ рд╣реИред рд╣рд╛рд▓ рд╣реА рдореЗрдВ, рдХрд╛рд░реНрдпреЛрдВ рдореЗрдВ рд▓реЙрдЧрд░ рдХреЗ "рдЕрдЬреАрдм" рдЙрдкрдпреЛрдЧ рдХреЗ рдХрд╛рд░реНрдпреЛрдВ рдореЗрдВ рдПрдХ рдкреНрд░рд╡реГрддреНрддрд┐ рд╣реБрдИ рд╣реИред рдореЗрд░реЗ рд╕рд╣рдпреЛрдЧрд┐рдпреЛрдВ рдФрд░ рдореИрдВрдиреЗ рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯ рдХреЗ рдкрд╛рда рдореЗрдВ рдЬрд╛рд╡рд╛ рд▓реЙрдЧрд┐рдВрдЧ рд╕рд░реНрд╡реЛрддреНрддрдо рдкреНрд░рдерд╛рдУрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдПрдХ рд▓реЗрдЦ рдХреЗ рд▓рд┐рдВрдХ рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛, рд▓реЗрдХрд┐рди рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдРрд╕рд╛ рд▓реЗрдЦ рдЬреЛ рдХреЗрд╡рд▓ рдФрд░ рдЕрддрд┐рд░рд┐рдХреНрдд рд╡рд┐рд╡рд░рдг рдХреЗ рдмрд┐рдирд╛ рдЕрднреНрдпрд╛рд╕ рдореЗрдВ рд╕рдордЭрд╛рдПрдЧрд╛ рдХрд┐ рдЬрд╛рд╡рд╛ рд▓реЙрдЧ рдХреЛ рдХреИрд╕реЗ рд▓рд┐рдЦреЗрдВ? рд╕реНрдерд┐рдд рд╣реИред

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


рдХреБрдЫ рд╕реНрдкрд╖реНрдЯреАрдХрд░рдгред


рдЙрджрд╛рд╣рд░рдг рд╕рдВрдЦреНрдпрд╛ рез


рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ


public class SomeClass { private static Logger log = Logger.getLogger(SomeClass.class.getName()); public void someMethod() { log.info("Some message"); } ... 


  1. рд▓рдХрдбрд╝рд╣рд╛рд░рд╛ рдПрдХ рд╕реНрдерд┐рд░ рд╡рд░реНрдЧ рдХреНрд╖реЗрддреНрд░ рд╣реИ, рдЬрдм рдХрдХреНрд╖рд╛ рдХреЛ рд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЗрд╕рдХрд╛ рдПрдХ рд╕рд░рд▓, рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдирд╛рдо рд╣реЛрддрд╛ рд╣реИ, рдпрд╣ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдХрд┐ рдЖрдкрдХреА рд╕рднреА рдХрдХреНрд╖рд╛рдУрдВ рдореЗрдВ рд▓рдХрдбрд╝рд╣рд╛рд░рд╛ рдЪрд░ рдХреЛ рд╕рдорд╛рди рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ (рдпрд╣ рд╕рд╛рдорд╛рдиреНрдп рдирд┐рдпрдо рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд╣реЛрддрд╛ рд╣реИ, рдХрд╛рд░реНрдпрдХреНрд░рдо рдореЗрдВ рд╕рдорд╛рди рдЪреАрдЬреЛрдВ рдХреЛ рдЙрд╕реА рддрд░рд╣ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП)ред
  2. рдореИрдВ рд▓рдХрдбрд╝рд╣рд╛рд░реЗ рдХреЗ рдирд╛рдо рдХреЗ рд░реВрдк рдореЗрдВ рд╡рд░реНрдЧ рдХреЗ рдирд╛рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдпрд╣ рдПрдХрдорд╛рддреНрд░ рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИ, рдЖрдк рдХреБрдЫ рдкреНрд░рдХрд╛рд░ рдХреЗ рд▓реЙрдЧрд┐рдВрдЧ рдкрджрд╛рдиреБрдХреНрд░рдо рдХреЛ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдбреЗрдЯрд╛ рд╡рд┐рдирд┐рдордп рд╕реЗ рдирд┐рдкрдЯрдиреЗ рд╡рд╛рд▓реЗ рдЙрдкрдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдкрд░рд┐рд╡рд╣рди рдкрд░рдд / рдРрдк рдкрд░рдд), рд▓реЗрдХрд┐рди рдЕрднреНрдпрд╛рд╕ рд╕реЗ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ, рдмрд╛рдж рдореЗрдВ рдореБрдЦреНрдп рдЪреАрдЬрд╝ рдХрд╛ рдЖрд╡рд┐рд╖реНрдХрд╛рд░ рдХрд░рдирд╛ рдЗрд╕ рддрд░рд╣ рдХреЗ рдкрджрд╛рдиреБрдХреНрд░рдо рдХрд╛ рд╕рдЦреНрддреА рд╕реЗ рдкрд╛рд▓рди рдХрд░рдирд╛ рдмреЗрд╣рдж рдореБрд╢реНрдХрд┐рд▓ рд╣реИ, рдФрд░ рд▓рдХрдбрд╝рд╣рд╛рд░рд╛ рдирд╛рдореЛрдВ рдХреЗ рд╕рд╛рде рд╡рд░реНрдЧ рдирд╛рдореЛрдВ рдХреЗ рд╕рд╛рде рдореЗрд▓ рдЦрд╛рдиреЗ рд╡рд╛рд▓рд╛ рд╡рд┐рдХрд▓реНрдк рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реИ рдФрд░ 99% рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
  3. рдпрд╣рд╛рдВ рдореИрдВ рд▓реЙрдЧ рдХреЛ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рд╢реЙрд░реНрдЯ .info рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ, рдФрд░ рдЕрдзрд┐рдХ рд╕рд╛рдорд╛рдиреНрдп .log рд╡рд┐рдзрд┐ рдирд╣реАрдВ, рдЗрддрдирд╛ рдЕрдзрд┐рдХ рд╕рдВрдХреНрд╖рд┐рдкреНрдд
  4. рд▓рдХрдбрд╝рд╣рд╛рд░реЗ рдХрд╛ рдирд╛рдо SomeClass.class.getName () рдХреЗ рд░реВрдк рдореЗрдВ рд▓рд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ "com.dataart.demo.java.log.SomeClass" рдХреЗ рд░реВрдк рдореЗрдВ рдирд╣реАрдВ, рджреЛрдиреЛрдВ рд╡рд┐рдзрд┐рдпрд╛рдВ рдореВрд▓ рд░реВрдк рд╕реЗ рд╕рдорд╛рди рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╡рд░реНрдЧ рдирд╛рдо / рдкреИрдХреЗрдЬ рдХреЛ рдирд┐рд╖реНрдХреНрд░рд┐рдп рдХрд░рддреЗ рд╕рдордп рдкрд╣рд▓рд╛ рдЖрдкрдХреЛ рдЖрд╢реНрдЪрд░реНрдп рд╕реЗ рдмрдЪрд╛рддрд╛ рд╣реИред


рдмреАрдорд╛рд░

 public class SomeClass { public void someMethod() { Logger.getLogger("com.dataart.demo.java.logging.SomeClass").log(Level.INFO,"Some message"); } ... 


рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ рдПрдХ рд╣реА рдмрд╛рдд рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдзрд┐рдХ рдЕрдХреНрд╖рд░ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рдкрдврд╝рдирд╛ рдЗрддрдирд╛ рдЖрд╕рд╛рди рдирд╣реАрдВ рд╣реИред

рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЗ рдмреАрдЪ рдзреНрдпрд╛рди рджреЗрдВ

рдЖрдкрдиреЗ рд╢рд╛рдпрдж рджреЗрдЦрд╛ рдХрд┐ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдореЗрдВ рд╕рднреА рд╕рдВрджреЗрд╢ рдЕрдВрдЧреНрд░реЗрдЬреА рдореЗрдВ рд╣реИрдВред рдпрд╣ рдХреЛрдИ рд╕рдВрдпреЛрдЧ рдирд╣реАрдВ рд╣реИред рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЕрдЧрд░ рд╣рд░ рдХреЛрдИ рдЬреЛ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЖрдкрдХреЗ рдХреЛрдб рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░реЗрдЧрд╛, рд░реВрд╕реА рдмреЛрд▓рддрд╛ рд╣реИ, рддреЛ рдХреНрдпрд╛ рдпрд╣ рд╕рдВрднрд╡ рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рджреВрд░рд╕реНрде рдХрдВрдкреНрдпреВрдЯрд░ рдкрд░ рд╕рдВрджреЗрд╢ рд▓реЙрдЧ рдХреЛ рджреЗрдЦрдирд╛ рд╣реЛрдЧрд╛, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП ssh рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ, рдФрд░ рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдЖрдкрдХреЛ рдРрд╕рд╛ рдХреБрдЫ рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛ "? ???, ???? ????? !!!! " (рдореБрдЭреЗ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдкрддрд╛ рд╣реИ рдХрд┐ рдЖрдк ssh рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд░реВрд╕реА рдкрддреНрд░ рдЦреАрдВрдЪ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ, рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рд╕рдм рдХреБрдЫ рд╣рдореЗрд╢рд╛ рдареАрдХ рд╕реЗ рд╕реЗрдЯ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ)ред
рдпрд╛ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ cmd рдореЗрдВ рд╕реНрдерд╛рдиреАрдп рдорд╢реАрди рдкрд░ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рдХреНрдпрд╛ рд╣реИ:
INFO: тХитХитЦСтХитХСтХитХЫтХитХб-тХдтХитХЫ тХдтХитХЫтХитХЫтХитЦТтХдтХитХбтХитХЬтХитХХтХитХб тХитЦУ тХитХЧтХитХЫтХитФВ

рдмреЗрд╢рдХ, рдпрд╣ рднреА рд▓рдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рд╣реИрдВрдбрд╕реЗрдЯ рдХреЗ рджреВрд╕рд░реЗ рдЫреЛрд░ рдкрд░ рдЧреНрд░рд╛рд╣рдХ рдХреЛ рд╕рдордЭрд╛рдирд╛ рд╣рдореЗрд╢рд╛ рдЖрд╕рд╛рди рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рдХреИрд╕реЗ рджрд░рд╛рд░ рдХреЗ рдмрдЬрд╛рдп рд░реВрд╕реА рдкрддреНрд░ рджрд┐рдЦрд╛рдИ рджреЗрдВред
рдпреБрдХреНрддрд┐: рд╕рдВрджреЗрд╢ рдХреЛ рдЕрдВрдЧреНрд░реЗрдЬреА рдореЗрдВ рд▓рд┐рдЦреЗрдВ, рдпрд╛, рдЪрд░рдо рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рд▓реИрдЯрд┐рди рдЕрдХреНрд╖рд░реЛрдВ рдореЗрдВред

рдЙрджрд╛рд╣рд░рдг рд╕рдВрдЦреНрдпрд╛ 2

рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ


 try { throw new Exception("Some exception"); } catch (Exception ex) { log.log(Level.SEVERE, "Exception: ", ex); } //         log.fine("some minor, debug message"); /*         (  -    ..).               */ if (log.isLoggable(Level.FINE)) { log.fine("Some CPU consuming message: " + prepareCPUConsumingLogMessage()); } 


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


рдмреАрдорд╛рд░

 try { throw new Exception("Some exception"); } catch (Exception ex) { log.severe("Exception: " + ex.toString() ); } log.fine("Some CPU consuming message: " + itTakes500MillisecondsToPrepageThisMessage()); 


рдпрджрд┐ рдЖрдк рдХреЗрд╡рд▓ ex.toString () рд▓реЙрдЧ рдЗрди рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдмрд╛рдж рдореЗрдВ рдЖрдк рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рд╣реЛрдВрдЧреЗ рдХрд┐ рдореВрд▓ рд░реВрдк рд╕реЗ рдХрд╛рдо рдХрд┐рдпрд╛ рдЧрдпрд╛ рдЕрдкрд╡рд╛рдж рдХрд┐рд╕ рдкрдВрдХреНрддрд┐ рдореЗрдВ рд╣реИред

рдЙрджрд╛рд╣рд░рдг рд╕рдВрдЦреНрдпрд╛ 3


рд▓рдХрдбрд╝рд╣рд╛рд░рд╛ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдПрдХ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╣реИ; рдпрд╣ INFO рд╕реНрддрд░ рдХреЗ рд╕рд╛рде рд╕рднреА рд╕рдВрджреЗрд╢реЛрдВ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИ рдФрд░ рдХрдВрд╕реЛрд▓ рдХреЛ рдЙрдЪреНрдЪрддрд░ рдХрд░рддрд╛ рд╣реИред рдпрд╣ IDE рд╕реЗ рд╡рд┐рдХрд╛рд╕ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рдареАрдХ рдХрд░рдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ред

рдХреНрдпрд╛ рд╡рд┐рдХрд▓реНрдк рд╣реИрдВ

рдбрд┐рдлрд╝реЙрд▓реНрдЯ: INFO рд╕реНрддрд░, рдХрдВрд╕реЛрд▓ рдЖрдЙрдЯрдкреБрдЯ рдХреЗ рд▓рд┐рдП Logging.properties рдлрд╝рд╛рдЗрд▓

#Console handler
handlers= java.util.logging.ConsoleHandler
.level=INFO


рд╣рдо рд▓реЙрдЧрд┐рдВрдЧ рдХреЛ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддреГрдд рдмрдирд╛рддреЗ рд╣реИрдВ; рд╣рдо FINE рд╕реНрддрд░ рдХреЗ рд╕рдВрджреЗрд╢ рднреА рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддреЗ рд╣реИрдВ

#Console handler
handlers= java.util.logging.ConsoleHandler
.level=FINE
java.util.logging.ConsoleHandler.level = FINE


рд╣рдордиреЗ рдпрд╣рд╛рдВ рдХреНрдпрд╛ рдХрд┐рдпрд╛ рд╣реИ


рд╕рдВрджреЗрд╢ рд▓реЙрдЧ рдХреЛ рдХрд╣реАрдВ рдФрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдВ


рдХрдВрд╕реЛрд▓ рдХреЗ рд▓рд┐рдП рдмреБрд░рд╛ рдирд┐рд╖реНрдХрд░реНрд╖ рдХреНрдпрд╛ рд╣реИ? рдХрдВрд╕реЛрд▓ рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ рдЕрдЪреНрдЫрд╛ рдкреБрд░рд╛рдирд╛ рд╕реНрдЯреИрдбрд░ рд╣реИ ред рдЗрд╕рдХрд╛ рдХреНрдпрд╛ рдорддрд▓рдм рд╣реИ:


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

 handlers= java.util.logging.FileHandler java.util.logging.FileHandler.pattern = application_log.txt java.util.logging.FileHandler.limit = 50 java.util.logging.FileHandler.count = 7 java.util.logging.FileHandler.formatter = java.util.logging.SimpleFormatter 


рдРрд╕реА рдлрд╛рдЗрд▓реЗрдВ рдмрдирд╛рдПрдВрдЧреЗ (рдЕрдВрддрд┐рдо рдХреЙрд▓рдо - рдЖрдХрд╛рд░ рдмрд╛рдЗрдЯреНрд╕ рдореЗрдВ)

 application_log.txt.0 тФВ 0
 application_log.txt.1 .1 79
 application_log.txt.2 тФВ 79
 application_log.txt.3 76 676
 application_log.txt.4 тФВ 87
 application_log.txt.5 log 114


рд╣рдордиреЗ рдЕрдзрд┐рдХрддрдо 50 рдмрд╛рдЗрдЯреНрд╕ рдХрд╛ рдЖрдХрд╛рд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рд╣реИ, рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЬреАрд╡рди рдореЗрдВ рдЖрдкрдХреЛ рдХрдо рд╕реЗ рдХрдо рдПрдХ рдореЗрдЧрд╛рдмрд╛рдЗрдЯ рдХрд╛ рд╕рдВрдХреЗрдд рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдП, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдЗрд╕ рддрд░рд╣ рд╕реЗ (рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ 1,000,000 рдореЗрдЧрд╛рдмрд╛рдЗрдЯ рд╕реЗ рдереЛрдбрд╝рд╛ рдХрдо рд╣реИ, рд▓реЗрдХрд┐рди рдЬреЛ рд╕реНрдореГрддрд┐ рд╕реЗ 1048576 рд▓рд┐рдЦрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИ, рдЕрдЧрд░ рд╡рд╣ рдорд╛рдорд▓реЗ рдХрд╛ рд╕рд╛рд░ рдмрджрд▓ рдЬрд╛рдП)
 java.util.log.FileHandler.limit = 1000000


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

рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЬреАрд╡рди рдХреЗ рд▓рд┐рдП рдХреЙрдкреА рдФрд░ рдкреЗрд╕реНрдЯ рд╡рд┐рдиреНрдпрд╛рд╕, рдпрд╣ рдЕрдзрд┐рдХрд╛рдВрд╢ рд╕реЗрд╡рд╛, рдХрдВрд╕реЛрд▓ рдФрд░ рдбреЗрд╕реНрдХрдЯреЙрдк рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИред

 рд╣реИрдВрдбрд▓рд░ = java.util.log.FileHandler

 java.util.log.FileHandler.pattern = application_log.txt
 java.util.log.FileHandler.limit = 1000000
 java.util.log.FileHandler.count = 5
 java.util.log.FileHandler.formatter = java.util.log.SimpleFormatter


рдЬрд╛рджреВ рдХрд╛ рдЖрдЦрд┐рд░реА рдЯреБрдХрдбрд╝рд╛

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


рдкрд╣рд▓рд╛ рд╡рд╛рд▓рд╛ рдереЛрдбрд╝рд╛ рдЕрдзрд┐рдХ рд╕рд╣реА рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдШреЛрд╖рдгрд╛рддреНрдордХ рд╣реИ рдФрд░ рдЖрдкрдХреЗ рдЖрд╡реЗрджрди рдХреЗ рдХреЛрдб рдХреЗ рдХрд╛рдо рдХрд░рдиреЗ рд╕реЗ рддреБрд░рдВрдд рдкрд╣рд▓реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
рдЗрд╕ рддрд░рд╣

java Djava.util.logging.config.file=logging.properties com.dataart.application.ClassName

рд▓реЗрдХрд┐рди рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рд▓реЙрдиреНрдЪ рд▓рд╛рдЗрди рдХреЛ рдмрджрд▓рдирд╛ рд╣рдореЗрд╢рд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ рдпрд╛ рд╣рдореЗрд╢рд╛ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред рджреВрд╕рд░реА рд╡рд┐рдзрд┐ рднреА рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░рддреА рд╣реИред

 public static void main(String[] args) { try { LogManager.getLogManager().readConfiguration( MainApplicationEntryClass.class.getResourceAsStream("/logging.properties")); } catch (IOException e) { System.err.println("Could not setup logger configuration: " + e.toString()); } ..... 





рдкрд░реНрджреЗ рдХреЗ рдкреАрдЫреЗ рдХреНрдпрд╛ рд░рд╣рддрд╛ рд╣реИ

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


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

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


All Articles