Enable debug logs only for debug builds on server
Print the logs only if their level is not under the threshold, which is
defined to INFO in release mode and DEBUG in debug mode.
@@ -10,28 +10,49 @@ public final class Ln {
private static final String TAG = "scrcpy";
+ enum Level {
+ DEBUG,
+ INFO,
+ WARN,
+ ERROR;
+ }
+
+ private static final Level THRESHOLD = BuildConfig.DEBUG ? Level.DEBUG : Level.INFO;
+
private Ln() {
// not instantiable
}
+ public static boolean isEnabled(Level level) {
+ return level.ordinal() >= THRESHOLD.ordinal();
+ }
+
public static void d(String message) {
+ if (isEnabled(Level.DEBUG)) {
Log.d(TAG, message);
System.out.println("DEBUG: " + message);
}
+ }
public static void i(String message) {
+ if (isEnabled(Level.INFO)) {
Log.i(TAG, message);
System.out.println("INFO: " + message);
}
+ }
public static void w(String message) {
+ if (isEnabled(Level.WARN)) {
Log.w(TAG, message);
System.out.println("WARN: " + message);
}
+ }
public static void e(String message, Throwable throwable) {
+ if (isEnabled(Level.ERROR)) {
Log.e(TAG, message, throwable);
System.out.println("ERROR: " + message);
throwable.printStackTrace();
}
}
+}
