Я подклассифицировал класс Log к классу Trace, который отражает методы в Log.Поэтому я делаю Trace.d (TAG, «бла»), а затем внутри метода Trace.d код выполняется только на основе статической конечной переменной класса LOGGING_LEVEL, которая имеет уровни 1-5 (нет, только ошибки, ошибки и предупреждения)., ошибки и предупреждения и информация, и все, включая отладку).При создании рабочего APK Proguard удаляет весь код, который не используется в приложении, поэтому он делает это для меня.
Для меня ведение журнала слишком важно, чтобы удалить его из источника, но оно должнобыть удаленным из производственного приложения по соображениям производительности, безопасности и интеллектуальной собственности.
Эта структура позволяет мне добавить в приложение гораздо больше записей, что значительно облегчает проблемы отладки, но никак не влияет напроизводство APK
public class Trace
{
public static final int NONE = 0;
public static final int ERRORS_ONLY = 1;
public static final int ERRORS_WARNINGS = 2;
public static final int ERRORS_WARNINGS_INFO = 3;
public static final int ERRORS_WARNINGS_INFO_DEBUG = 4;
private static final int LOGGING_LEVEL = ERRORS_ONLY; // Errors + warnings + info + debug (default)
public static void e(String tag, String msg)
{
if ( LOGGING_LEVEL >=1) Log.e(tag,msg);
}
public static void e(String tag, String msg, Exception e)
{
if ( LOGGING_LEVEL >=1) Log.e(tag,msg,e);
}
public static void w(String tag, String msg)
{
if ( LOGGING_LEVEL >=2) Log.w(tag, msg);
}
public static void i(String tag, String msg)
{
if ( LOGGING_LEVEL >=3) Log.i(tag,msg);
}
public static void d(String tag, String msg)
{
if ( LOGGING_LEVEL >=4) Log.d(tag, msg);
}
}