Если вы используете предварительную обработку и запутывание с Proguard, то у вас может быть простой класс ведения журнала.
public class Log {
public static void debug(final String message) {
//#if !release.build
System.out.println(message);
//#endif
}
}
Или зайдите туда, где вам нужно. Теперь, если свойство release.build установлено в true, этот код будет закомментирован, что приведет к пустому методу. Proguard удалит все случаи использования пустого метода - в результате при сборке выпуска будут удалены все сообщения отладки.
Edit:
Думая об этом на уровне библиотеки (я работаю над отображением библиотеки J2ME), я, вероятно, нашел лучшее решение.
public class Log {
private static boolean showDebug;
public static void debug(final String message) {
if (showDebug) {
System.out.println(message);
}
}
public static void setShowDebug(final boolean show) {
showDebug = show;
}
}
Таким образом, конечный разработчик может включить уровни журнала в интересующей его библиотеке. Если ничего не будет включено, весь код регистрации будет удален при запутывании конечного продукта. Sweet:)
/ JaanusSiim