كيف أكتب المخرجات إلى سجل الدخول إلى Android؟
سؤال
أريد أن أكتب بعض إخراج تصحيح الأخطاء إلى السجل لمراجعته باستخدام Logcat.
إذا كتبت شيئًا إلى System.Out ، فسيتم عرض ذلك بالفعل في Logcat.
ما هي الطريقة النظيفة للكتابة إلى السجل وإضافة مستويات وعلامات إلى مخرجتي؟
المحلول
تفحص android.util.Log
. يتيح لك الكتابة إلى السجل مع مستويات السجل المختلفة ، ويمكنك تحديد علامات مختلفة لتجميع الإخراج. علي سبيل المثال
Log.w("myApp", "no network");
سيقوم بإخراج تحذير مع العلامة myApp والرسالة لا شبكة.
نصائح أخرى
يتم استخدام العلامة فقط للعثور بسهولة على الإخراج الخاص بك ، لأن إخراج logcat يمكن أن تكون في بعض الأحيان طويلة جدا. يمكنك تحديد مكان ما في صفك:
TART FIND STATIC Static Final Tag = "MyApp" ؛
واستخدامه عند تصحيح الأخطاء
log.v (علامة ، "فعلت شيئًا") ؛
يمكنك تطبيق مرشح للبحث فقط عن العلامة.
يستخدم android.util.Log
والطرق الساكنة المحددة هناك (على سبيل المثال ، e()
, w()
).
import android.util.Log;
وثم
Log.i("the your message will go here");
يرجى الاطلاع على السجلات بهذه الطريقة ،
Log.e("ApiUrl = ", "MyApiUrl") (error)
Log.w("ApiUrl = ", "MyApiUrl") (warning)
Log.i("ApiUrl = ", "MyApiUrl") (information)
Log.d("ApiUrl = ", "MyApiUrl") (debug)
Log.v("ApiUrl = ", "MyApiUrl") (verbose)
String one = object.getdata();
Log.d(one,"");
لقد وجدت مؤخرًا هذا النهج لكتابة سجلات في Android ، والتي أعتقد أنها رائعة للغاية.
public static final boolean FORCED_LOGGING = true;
private static final int CALLER_STACK_INDEX = 3;
public static void showLogs(String message) {
if (FORCED_LOGGING) {
StackTraceElement caller = Thread.currentThread().getStackTrace()[CALLER_STACK_INDEX];
String fullClassName = caller.getClassName();
String className = fullClassName.substring(fullClassName.lastIndexOf('.') + 1);
String methodName = caller.getMethodName();
int lineNumber = caller.getLineNumber();
Log.i("*** " + className + "." + methodName + "():" + lineNumber + "\n" , message);
}
}
يمكنك استخدام libary الخاص بي يسمى rdalogger. هنا جيثب حلقة الوصل.
باستخدام هذه المكتبة ، يمكنك تسجيل رسالتك مع اسم الطريقة/رقم الفئة/رقم السطر ورابط المرساة. باستخدام هذا الرابط ، عند النقر فوق LOG ، تنتقل الشاشة إلى هذا السطر من التعليمات البرمجية.
لاستخدام المكتبة ، يجب عليك القيام بالتطبيقات أدناه.
في Gradle على مستوى الجذر
allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}
في Gradle على مستوى التطبيق
dependencies {
implementation 'com.github.ardakaplan:RDALogger:1.0.0'
}
لتهيئة المكتبة ، يجب أن تبدأ هكذا (في application.class أو قبل الاستخدام الأول)
RDALogger.start("TAG NAME").enableLogging(true);
ومن يمكنك تسجيل ما تريد ؛
RDALogger.info("info");
RDALogger.debug("debug");
RDALogger.verbose("verbose");
RDALogger.warn("warn");
RDALogger.error("error");
RDALogger.error(new Throwable());
RDALogger.error("error", new Throwable());
وأخيراً يظهر لك الإخراج كل ما تريده (اسم الفصل ، اسم الطريقة ، ارتباط المرساة ، الرسالة)
08-09 11:13:06.023 20025-20025/com.ardakaplan.application I/Application: IN CLASS : (ENApplication.java:29) /// IN METHOD : onCreate
info