По умолчанию Вход на платформе Android имеет ограниченное количество символов для вывода на консоль. Вокруг равно чуть больше 3000. Поэтому, если сообщение длиннее 3000 символов, оно не отображается на экране.
Я не нашел лучшего решения, чем это:
public class Log {
private static int mode = android.util.Log.INFO;
public static void e(String tag, String msg, Throwable tr) {
if ((mode & android.util.Log.ERROR) <= 0) return;
android.util.Log.e(tag, msg, tr);
}
public static void e(String tag, String msg) {
if ((mode & android.util.Log.ERROR) <= 0) return;
android.util.Log.e(tag, msg);
}
public static void w(String tag, String msg) {
if ((mode & android.util.Log.WARN) <= 0) return;
android.util.Log.w(tag, msg);
}
public static void i(String tag, String msg) {
if ((mode & android.util.Log.INFO) <= 0) return;
android.util.Log.i(tag, msg);
}
public static void d(String tag, String msg) {
if ((mode & android.util.Log.DEBUG) <= 0) return;
int length = msg.length();
int kind = 3000;
if (length >= kind) {
int count = length / kind;
int u = length % kind;
int i = 0;
for (i = 0; i < count; ++i) {
int start = i * kind;
int end = start + kind;
android.util.Log.d(tag, msg.substring(start, end));
}
if (u != 0) {
int start = length - u;
int end = start + u;
android.util.Log.d(tag, msg.substring(start, end));
}
} else {
android.util.Log.d(tag, msg);
}
}
}
Есть ли лучшее решение этой проблемы?