Java не имеет C / C ++ - как макросы, и поэтому нет простого способа автоматически отключить весь ваш код регистрации. Что вы можете сделать, это что-то вроде этого:
public class Utility {
private Utility() {} // Singleton
public static void log(String toLog) {
System.out.println(toLog);
}
/* ... etc. ... */
}
Теперь в любой точке вашей программы, в которую вы хотите записать событие, вы можете просто позвонить
Utility.log("Here's a message!");
В производственных сборках вы можете отключить вывод, просто изменив реализацию log
на no-op.
Это не так эффективно, как в C / C ++ - просто расширять ваш макрос регистрации до нуля во время компиляции, но хороший оптимизатор / JIT должен быть в состоянии заметить, что аргумент не используется, и оптимизировать Откажитесь от логики, чтобы установить эти аргументы.