рдореБрдЭреЗ рдпрдХреАрди рд╣реИ рдХрд┐ рдПрдВрдбреНрд░реЙрдЗрдб рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдкрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд╕рднреА рдбреЗрд╡рд▓рдкрд░реНрд╕
рд▓реЙрдЧ рдХреНрд▓рд╛рд╕ рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рд╣реИрдВ, рдЬреЛ рдЖрдкрдХреЛ рд╡рд┐рднрд┐рдиреНрди рдШрдЯрдирд╛рдУрдВ рдХреЛ
рд▓реЙрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рд╡рд┐рднрд┐рдиреНрди рдХрд╛рд░рдгреЛрдВ рд╕реЗ, рдкреНрд░рддреНрдпреЗрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд▓рд┐рдП рд▓реЙрдЧрд┐рдВрдЧ рдкреНрд░рд╛рд░реВрдк рдХрд╛рдлреА рднрд┐рдиреНрди рд╣реЛ рд╕рдХрддрд╛ рд╣реИ - "рдПрдПрдП", "111111" рдФрд░ "рдореИрдВ рдпрд╣рд╛рдВ рдерд╛" рд╕реЗ рдЕрдзрд┐рдХ рдпрд╛ рдХрдо рд╕рдордЭрджрд╛рд░ - "рдЦреЛрд▓рдиреЗ рдХреЗ рд▓рд┐рдП HTTP рдХрдиреЗрдХреНрд╢рди habrahabr.ru"ред рдХрдЯреМрддреА рдХреЗ рддрд╣рдд рдЖрдкрдХреЛ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрджрд╛рд╣рд░рдг рдорд┐рд▓реЗрдЧрд╛ рдЬреЛ рд▓реЙрдЧ рдХреЛ рд╕рд╛рдл рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░реЗрдЧрд╛ред
рдпрд╣ рд╡рд┐рд╖рдп рдореМрд▓рд┐рдХрддрд╛ рдФрд░ рдмрд╣реБрдореБрдЦреА рдкреНрд░рддрд┐рднрд╛ рдХрд╛ рджрд╛рд╡рд╛ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдФрд░ рдЗрд╕рд▓рд┐рдП, рдпрджрд┐ рдЖрдкрдХреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЗрд╡реЗрдВрдЯ рд▓реЙрдЧрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдорд╛рдирдХ рд╣реИрдВ, рддреЛ рдмреЗрдЭрд┐рдЭрдХ рдкрд╛рд╕ рдХрд░реЗрдВ - рд╡рд┐рд╖рдп рдХреА рд╢реБрд░реБрдЖрдд рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рдЙрджреНрджреЗрд╢реНрдп рд╕реЗ рдХреА рдЬрд╛рддреА рд╣реИред
рдПрдХ рдирд┐рдпрдо рдХреЗ рд░реВрдк рдореЗрдВ, рдЖрдк рд▓реЙрдЧ рдХреЗ рдореВрд▓реНрдп рдХреЛ рдХреЗрд╡рд▓ рддрднреА рд╕рдордЭрдирд╛ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ рдЬрдм рдЧреНрд░рд╛рд╣рдХ рдореЗрд▓ рдкрд░ рд▓реЙрдЧ рднреЗрдЬрдХрд░ рд╢рдкрде рд▓реЗрддрд╛ рд╣реИ рдФрд░ 5 рдорд┐рдирдЯ рдХреЗ рдмрд╛рдж рдлрд┐рдХреНрд╕ рд╕рдмрдорд┐рдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рддрд╛ рд╣реИред рдФрд░ рдЕрдЧрд░ рд▓реЙрдЧ рдореЗрдВ рдПрдХ рд╕реНрд▓реЗрдЯреЗрдб рдкреНрд░рдХреГрддрд┐ рдХреЗ рд╕рдВрджреЗрд╢ рд╣реИрдВ, рддреЛ рдХрдо рд╕реЗ рдХрдо рдЗрд╕ рд▓реЙрдЧ рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░рдиреЗ рдореЗрдВ рд╣рдореЗрдВ рдЬрд┐рддрдирд╛ рд╕рдордп рд▓рдЧреЗрдЧрд╛ рдЙрддрдирд╛ рдЕрдзрд┐рдХ рд╕рдордп рд▓рдЧреЗрдЧрд╛ред
рдЪреАрдЬреЛрдВ рдХреЛ рдХреНрд░рдо рдореЗрдВ рд░рдЦрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реИ
рд▓реЙрдЧ рдореМрдЬреВрдж рд╣реИрдВ рддрд╛рдХрд┐ рдбреЗрд╡рд▓рдкрд░ рд╕рдордЭ рд╕рдХреЗ рдХрд┐ рдХреНрдпрд╛, рдХрд╣рд╛рдВ рдФрд░ рдХрдм рд╣реБрдЖред рд╕рд╡рд╛рд▓ рдХрд╛ рдЬрд╡рд╛рдм рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП "рдпрд╣ рдХрдм рд╣реБрдЖ" рдХрд╛рдлреА рд╕рд░рд▓ рд╣реИ - рд▓реЙрдЧ рдореЗрдВ рдПрдВрдбреНрд░реЙрдЗрдб рдШрдЯрдирд╛ рдХреЗ рд╕рдордп рдХреЛ рд░рд┐рдХреЙрд░реНрдб рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ "рд▓реЙрдЧ рдореЗрдВ рд╕рдВрджреЗрд╢ рдЕрд░реНрде рдХреЗ рд╕рд╛рде рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рдерд╛, рддреЛ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП" рдУрдкрдирд┐рдВрдЧ рдлрд╝рд╛рдЗрд▓ ... "рдпрджрд┐ рдкреНрд░рд╢реНрди рдХрд╛ рдЙрддреНрддрд░" "рдХреНрдпрд╛ рд╣реБрдЖ" рднреА рдмрдбрд╝реА рдХрдард┐рдирд╛рдЗрдпреЛрдВ рдХрд╛ рдХрд╛рд░рдг рдирд╣реАрдВ рдмрдирддрд╛ рд╣реИред рд╕рд╡рд╛рд▓ "рдпрд╣ рдХрд╣рд╛рдВ рд╣реБрдЖ" рд╕рдмрд╕реЗ рдХрдард┐рди рдирд┐рдХрд▓рд╛ред рдпрджрд┐ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдмрдбрд╝реА рд╣реИ, рддреЛ рдЖрдкрдХреЛ рдХреЛрдб рдореЗрдВ рд╕рд╣реА рдЬрдЧрд╣ рдЦреЛрдЬрдиреЗ рдореЗрдВ рд╕рдордп рдмрд┐рддрд╛рдирд╛ рд╣реЛрдЧрд╛, рднрд▓реЗ рд╣реА рд▓реЙрдЧ рдЕрд░реНрде рдХреЗ рд╕рд╛рде рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реЛред
рдпрджрд┐ рдИрд╡реЗрдВрдЯ рдХреЛ рдереНрд░реЛрдмреЗрдмрд▓ (рдЖрдорддреМрд░ рдкрд░ рдЕрдкрд╡рд╛рдж) рдХреЗ рд╕рд╛рде рд▓реЙрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╡рд┐рдзрд┐
public static int d (String tag, String msg, Throwable tr)
, рддреЛ рд╕рдВрджреЗрд╢ рдХрдВрд╕реЛрд▓ рдореЗрдВ рдПрдХ рд╕реНрдЯреИрдХ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдЬреЛ рд▓реЙрдЧрд┐рдВрдЧ рд╕реНрдерд╛рди рдХреЛ рдЬрд▓реНрджреА рд╕реЗ рдкрд╣рдЪрд╛рдирдиреЗ рдореЗрдВ рдорджрдж рдХрд░реЗрдЧрд╛ред рд▓реЗрдХрд┐рди рдЗрд╕ рдкрджреНрдзрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рд╡рд┐рд╢реЗрд╖ рдЕрдкрдорд╛рди рдХреЗ рдмрд┐рдирд╛ рдЕрдирд╛рд╡рд╢реНрдпрдХ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд╕рд╛рде рд▓реЙрдЧ рдХреЛ рдЕрдзрд┐рднрд╛рд░рд┐рдд рдХрд░реЗрдЧрд╛ред
рдпрджрд┐ рд▓реЙрдЧрд┐рдВрдЧ рдХреЗрд╡рд▓ рдкрд╛рда рд╣реИ, рддреЛ рд▓реЙрдЧрд┐рдВрдЧ рдХрд░рддреЗ рд╕рдордп рдЖрдк рдХреЙрд▓ рдХреЗ рд╕реНрдерд╛рди рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЗрдВрдЧрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:
Log.v("My Project", "[ImageLoader:loadFile]: Opening file...");
рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╣рд░ рдмрд╛рд░ рдпрд╣ рд▓рд┐рдЦрдирд╛ рдПрдХ рдердХрд╛рдК рдФрд░ рдзрдиреНрдпрд╡рд╛рдж рд░рд╣рд┐рдд рдХрд╛рд░реНрдп рд╣реИред
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд
Log
рд╡рд░реНрдЧ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ рдЬреЛ рдпрд╣ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдХрд░рддрд╛ рд╣реИред
public final class Log { ... public static void v(String msg) { android.util.Log.v(TAG, getLocation() + msg); } private static String getLocation() { final String className = Log.class.getName(); final StackTraceElement[] traces = Thread.currentThread().getStackTrace(); boolean found = false; for (int i = 0; i < traces.length; i++) { StackTraceElement trace = traces[i]; try { if (found) { if (!trace.getClassName().startsWith(className)) { Class<?> clazz = Class.forName(trace.getClassName()); return "[" + getClassName(clazz) + ":" + trace.getMethodName() + ":" + trace.getLineNumber() + "]: "; } } else if (trace.getClassName().startsWith(className)) { found = true; continue; } } catch (ClassNotFoundException e) { } } return "[]: "; } private static String getClassName(Class<?> clazz) { if (clazz != null) { if (!TextUtils.isEmpty(clazz.getSimpleName())) { return clazz.getSimpleName(); } return getClassName(clazz.getEnclosingClass()); } return ""; } }
рдХрдХреНрд╖рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИ:
Log.v("Opening file...");
рдЗрд╕ рддрд░рд╣ рд╕реЗ рд▓реЙрдЧ рдЗрди рдХрд░рдиреЗ рдХрд╛ рдкрд░рд┐рдгрд╛рдо рдирд┐рдореНрди рдкрдВрдХреНрддрд┐рдпрд╛рдБ рд╣реЛрдВрдЧреА:
03-28 22:51:23.239: VERBOSE/TestApp(16390): [MainActivity:onResume:124]: Opening file... 03-28 22:51:23.341: VERBOSE/TestApp(16390): [MainActivity:run:198]: Closing file...
рдиреЛрдЯ:
рд╕реНрдкрд╖реНрдЯ рдХрд╛рд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП, рдпрд╣ рд╡рд┐рдзрд┐ рдкреНрд░реЗрдХреНрд╖рдХ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ "рдкрд╛рд░рд┐рдд" рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЙрдкрдпреБрдХреНрдд рдирд╣реАрдВ рд╣реИред
рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдпрд╣ рд╕рдм рд╣реИред
рдореИрдВ рдорд╛рдлреА рдорд╛рдБрдЧрддрд╛ рд╣реВрдБ рдЕрдЧрд░ рдпрд╣ рд▓реЗрдЦ рд╣реИрдмреНрд░ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рддреБрдЪреНрдЫ рд▓рдЧрддрд╛ рдерд╛ред