package testtools; import android.support.annotation.NonNull; import android.util.Log; import java.util.ArrayList; import java.util.List; import timber.log.Timber; public class JUnitTree extends Timber.DebugTree { private final int minlogLevel; private final List<String> lines = new ArrayList<>(); public JUnitTree() { minlogLevel = Log.VERBOSE; } public JUnitTree(int minlogLevel) { this.minlogLevel = minlogLevel; } private static String priorityToString(int priority) { switch (priority) { case Log.ERROR: return "E"; case Log.WARN: return "W"; case Log.INFO: return "I"; case Log.DEBUG: return "D"; case Log.VERBOSE: return "V"; default: return String.valueOf(priority); } } @Override protected void log(int priority, String tag, @NonNull String message, Throwable t) { if (priority < minlogLevel) return; final String line = System.currentTimeMillis() + " " + priorityToString(priority) + "/" + tag + ": " + message; lines.add(line); System.out.println(line); } public List<String> getLines() { return lines; } }