عرض السجلّات باستخدام Logcat

تساعدك نافذة Logcat في "استوديو Android" على تصحيح الأخطاء في تطبيقك من خلال: عرض السجلات من جهازك في الوقت الفعلي - مثل الرسائل التي تمت إضافتها إلى تطبيقك من خلال الصف Log، الرسائل من الخدمات التي تعمل على Android، أو من رسائل النظام، مثل عند تلقي البيانات غير المرغوب فيها جمع البيانات. عندما يطرح تطبيق استثناء، تعرض Logcat رسالة متبوعًا بتتبُّع تسلسل استدعاء الدوال البرمجية المرتبط الذي يحتوي على روابط إلى سطر الرمز البرمجي.

بدء استخدام نافذة Logcat

لعرض رسائل سجلّ تطبيقك، اتّبِع الخطوات التالية:

  1. في "استوديو Android"، يمكنك إنشاء تطبيقك وتشغيله على أو جهاز محاكاة.
  2. حدّد عرض > نوافذ الأدوات > Logcat من شريط القوائم.

يتم تمرير Logcat تلقائيًا إلى النهاية. النقر في طريقة عرض Logcat أو الانتقال للأسفل باستخدام عجلة الماوس إلى إيقاف هذه الميزة. لتشغيله مرة أخرى، انقر على الانتقال إلى النهاية انتقِل إلى رمز النهاية من شريط الأدوات. يمكنك أيضًا استخدام شريط الأدوات للمسح أو الإيقاف المؤقت أو إعادة التشغيل Logcat.

واجهة مستخدم نافذة Logcat

الشكل 1. تقوم Logcat بتنسيق السجلات لتسهيل فحص المعلومات المفيدة، مثل العلامات والرسائل، وتحدد أنواعًا مختلفة من السجلات، مثل التحذيرات والأخطاء.

كيفية قراءة السجلّات

ويحتوي كل سجل على تاريخ وطوابع زمنية ومعرّف عملية ومعرّف مؤشر وعلامة واسم حزمة والأولوية والرسالة المرتبطة بها. العلامات المختلفة لها لون فريد تساعد في تحديد نوع السجل. ولكل إدخال في السجل الأولوية FATAL، ERROR أو WARNING أو INFO أو DEBUG أو VERBOSE

على سبيل المثال، أولوية رسالة السجل التالية DEBUG وعلامة ProfileInstaller:

2022-12-29 04:00:18.823 30249-30321 ProfileInstaller        com.google.samples.apps.sunflower    D  Installing profile for com.google.samples.apps.sunflower

ضبط عرض السجلّ

تعرض طريقة عرض السجل القياسي تاريخ كل سجل ووقت العملية ومعرف سلسلة المحادثات والعلامة اسم الحزمة والأولوية والرسالة المرتبطة بها. إرسال رسالة تلقائيًا لا يتم التفاف الأسطر في عرض السجل ولكن يمكنك استخدام التفاف خفيف رمز التفاف خفيف من شريط أدوات Logcat.

يمكنك التبديل إلى طريقة العرض مكثّفة، التي تتضمّن معلومات عرض تلقائية أقل. بالنقر على ضبط خيارات تنسيق Logcat () من شريط الأدوات Logcat

لضبط كمية المعلومات التي تريد عرضها، اختَر تعديل طرق العرض، واختر ما إذا كنت تريد رؤية الطابع الزمني والعلامات أو معرفات العمليات أو أسماء الحزم المعروضة.

تغيير الألوان

لتغيير الألوان، انتقِل إلى استوديو Android > الإعدادات > محرِّر > نظام الألوان: لتغيير نظام الألوان لعرض السجل، اختَر Android Logcat. لتغيير نظام الألوان للفلتر، اختَر فلتر Logcat:

خيارات الضبط الإضافية

للاطلاع على خيارات التهيئة الإضافية، انتقل إلى استوديو Android > الإعدادات > الأدوات > Logcat: من هنا، يمكنك اختيار أداة Logcat وحجم المخزن المؤقت لدورة متكررة، والفلتر الافتراضي لنوافذ Logcat الجديدة، وما إذا كان تريد إضافة فلاتر من السجلّ إلى ميزة "الإكمال التلقائي".

استخدام Logcat في نوافذ متعددة

تساعدك علامات التبويب في التبديل بسهولة بين الأجهزة أو طلبات البحث المختلفة. يمكنك إنشاء علامات تبويب Logcat متعددة من خلال النقر على علامة تبويب جديدة رمز "علامة تبويب جديدة". يتيح لك النقر بزر الماوس الأيمن على علامة تبويب إعادة تسميتها وإعادة ترتيبها.

بالإضافة إلى ذلك، يمكنك تقسيم العرض ضمن علامة تبويب لمساعدتك في تنفيذ ذلك بسهولة أكبر. والمقارنة بين مجموعتين من السجلات. لإنشاء قسمة، انقر بزر الماوس الأيمن على أو انقر على خيار تقسيم اللوحات من شريط الأدوات، وحدد تقسيم لليمين أو تقسيم للأسفل. لإغلاق عملية تقسيم، انقر بزر الماوس الأيمن اختَر إغلاق. ويتيح لك كل قسم ضبط اتصال الجهاز الخاص به وعرض والخيارات والاستعلام.

نوافذ Logcat المتعددة الشكل 2. نوافذ Logcat المقسَّمة في "استوديو Android"

من شريط أدوات Logcat، يمكنك التمرير إلى نهاية السجلّات أو يمكنك النقر على سطر معين للحفاظ على هذا الخط مرئيًا.

في "استوديو Android"، يمكنك إجراء عمليات بحث ذات قيمة أساسية مباشرةً من حقل الاستعلام الرئيسي. يوفّر نظام الاستعلامات هذا دقة ما تريد وكذلك استبعاد السجلات استنادًا إلى القيم الأساسية. بينما لديك خيار استخدام التعبيرات العادية، فلن تضطر إلى الاعتماد عليها في الاستعلامات. للاطلاع على الاقتراحات، اضغط على Ctrl + Space في حقل طلب البحث.

قائمة الاقتراحات في حقل طلب البحث الشكل 3. اضغط على Ctrl + Space في حقل طلب البحث للاطّلاع على قائمة لطلبات البحث المقترحة.

فيما يلي بعض الأمثلة على المفاتيح التي يمكنك استخدامها في استعلامك:

  • tag: يتطابق مع الحقل tag في إدخال السجلّ.
  • package: تتطابق مع اسم حزمة تطبيق التسجيل.
  • process: يطابق اسم العملية لتطبيق التسجيل.
  • message: يطابق جزء الرسالة من إدخال السجلّ.
  • level: يتطابق مع مستوى السجلّ المحدّد أو الأعلى شديدًا، مثل DEBUG.
  • age: تتم مطابقتها إذا كان الطابع الزمني للإدخال حديثًا. يتم تحديد القيم على أنها رقم متبوعًا بحرف يحدد الوحدة الزمنية: s بالثواني وm للإشارة إلى دقيقة، وh للساعات وd للأيام. على سبيل المثال، age: 5m فلاتر فقط الرسائل التي تم تسجيلها خلال آخر 5 دقائق.

النفي والتعبيرات العادية

تتيح الحقول التالية استخدام علامة النفي ومطابقة التعبير العادي: tag، package وmessage وline

يتم التعبير عن النفي بإضافة - إلى اسم الحقل في بداية الاسم. على سبيل المثال: تتطابق -tag:MyTag مع إدخالات السجلّ التي لا يحتوي tag على السلسلة فيها. MyTag

يتم التعبير عن مطابقة التعبير العادي من خلال إلحاق ~ باسم الحقل. مثلاً: tag~:My.*Tag

يمكن الجمع بين معدِّلات النفي والتعبير العادي. على سبيل المثال: -tag~:My.*Tag

العوامل والأقواس المنطقية

تتوافق لغة طلب البحث مع عاملَي التشغيل AND وOR اللذان يتم التعبير عنه بالاستناد إلى & | والأقواس. مثلاً:

(tag:foo | level:ERROR) & package:mine

يُرجى العلم بأنّه يتم فرض الأسبقية العادية لعامل التشغيل، وبالتالي يتم فرض ما يلي:

tag:foo | level:ERROR & package:mine

يتم تقييمه على النحو التالي:

tag:foo | (level:ERROR & package:mine)

العوامل المنطقية الضمنية

إذا لم يتم تطبيق عوامل التشغيل المنطقية، فسيتم تحديد لغة الاستعلام تلقائيًا تقيّم عدة عبارات فلتر key-value لم يتم إبطالها باستخدام المفتاح نفسه المستخدَم في OR وكل الخدمات الأخرى التي تتضمّن AND.

مثلاً:

tag:foo tag:bar package:myapp

يتم تقييمه على النحو التالي:

(tag:foo | tag:bar) & package:myapp

ولكن:

tag:foo -tag:bar package:myapp

يتم تقييمه على النحو التالي:

tag:foo & -tag:bar & package:myapp

إذا تم فصل عبارات استعلام متعددة بمسافة بيضاء بدون عامل منطقي، ويتم التعامل معها كـ AND ذات أولوية منخفضة. على سبيل المثال، يستخدم المصطلح foo bar tag:bar1 | tag:bar2 تساوي 'foo bar' & (tag: bar1 | tag: bar2)

طلبات بحث خاصة

package:mine

يتيح مفتاح الحزمة استخدام قيمة خاصة mine. تتطابق هذه القيمة الخاصة مع أي لأسماء الحزم الموجودة في المشروع المفتوح.

level

يتطابق استعلام level مع مستوى السجل لرسالة Logcat، حيث تمثل مستوى إدخال السجل أكبر من مستوى طلب البحث أو مساويًا له.

على سبيل المثال، يتطابق level:INFO مع أي إدخال في السجلّ بمستوى السجلّ INFO، WARN أو ERROR أو ASSERT هذا المستوى ليس حسّاسًا لحالة الأحرف. المستويات الصالحة هي: "VERBOSE" و"DEBUG" و"INFO" و"WARN" و"ERROR" و"ASSERT"

age

يتطابق طلب البحث age مع الإدخالات بناءً على طوابعها الزمنية، ويتم تنسيقه على النحو التالي: age:<number><unit>، حيث

  • <number> هو عدد صحيح.
  • <unit> هي إحدى القيم من s وm وh وd (الثواني والدقائق والساعات والأيام).

في القائمة التالية، يتطابق طلب البحث age مع رسائل السجلّ التي تحتوي على الطابع الزمني في النطاق الموصوف بالقيمة. على سبيل المثال: طلب البحث age:5m تتطابق مع الإدخالات ذات الطابع الزمني قبل أكثر من 5 دقائق.

age:30s
age:5m
age:3h
age:1d

تجدر الإشارة إلى أنه تتم مقارنة الطابع الزمني بالطابع الزمني للمضيف، وليس مقابل الطابع الزمني جهاز متصل. إذا لم يتم ضبط وقت الجهاز بشكل صحيح، فسيظهر طلب البحث هذا قد لا يعمل كما هو متوقع.

مفتاح is

يمكنك استخدام مفتاح is على النحو التالي:

  • يطابق is:crash إدخالات السجلّ التي تمثّل عطلاً في التطبيق. (إما أصلية أو بلغة Java).
  • يطابق is:stacktrace إدخالات السجلّ التي تمثّل أي عنصر يشبه تتبُّع تسلسل استدعاء الدوال البرمجية في Java، بغض النظر عن مستوى السجلّ.

مفتاح name

يتيح لك مفتاح name تقديم اسم فريد لفلتر محفوظ بحيث يمكن التعرف عليها بسهولة في القائمة المنسدلة لسجل التصفية. وعلى الرغم من أنك لا تحصل على خطأ في تحديد name أكثر من مرة، فإن بيئة التطوير المتكاملة (IDE) تستخدم آخر المحددة لـ name في طلب البحث.

عرض سجلّ طلبات البحث

يمكنك الاطّلاع على سجلّ طلبات البحث بالنقر على عرض السجلّ رمز الفلتر بجوار حقل الاستعلام. لوضع استعلام في المفضلة بحيث يظل في الجزء العلوي من في كل مشاريع الاستوديو الخاصة بك، ثم انقر على النجمة الظاهرة بجانبها يمكنك أيضًا استخدِم مفتاح name: لتسهيل التعرّف على طلبات البحث المفضّلة. لمزيد من المعلومات، للحصول على معلومات، يُرجى الاطّلاع على طلبات البحث الخاصة.

واجهة مستخدم لإضافة طلب بحث إلى قائمة العناصر المفضّلة

الشكل 4. يمكنك إضافة طلب بحث إلى القائمة المفضّلة من خلال النقر على النجمة بجانبه.

تتبُّع السجلّات لكلّ أعطال التطبيق وإعادة تشغيله

عندما تلاحظ Logcat إيقاف معالجة تطبيقك وإعادة تشغيلها، يتم عرض رسالة في الناتج، مثل PROCESS ENDED وPROCESS STARTED. تؤدي إعادة تشغيل Logcat إلى الاحتفاظ بإعدادات الجلسة، مثل تقسيمات علامات التبويب وعوامل التصفية وخيارات العرض، لكي تتمكّن من مواصلة الجلسة بسهولة.

نافذة Logcat لأعطال التطبيق

الشكل 5. عند إعادة تشغيل عملية التطبيق، تطبع Logcat رسالة تفيد بأن العملية ثم بدأت.