×
Namespaces

Variants
Actions

Creating crash log in Windows Phone (ِArabic)

From Nokia Developer Wiki
Jump to: navigation, search

هذا المقال يوضح كيفية تسجيل الأستثناءات غير المعالجة التي تجعل تطبيقك غير قادر على العمل بنجاح .

WP Metro Icon Bug.png
WP Metro Icon WP8.png
SignpostIcon WP7 70px.png
Article Metadata
Code ExampleTested with
Devices(s): Nokia Lumia 820, Nokia Lumia 800
CompatibilityArticle
Translated:
By bintk
Last edited: hamishwillee (19 Jul 2013)

Contents

المقدمة

  • كل تطبيق في العالم لديه مرحلة بيتا ويتناول في هذه المرحلة , اختبار التطبيق من قبل المستخدمين النهائيين. أحيانا حتى في تطبيق المنتشرة هناك أخطاء أيضاً .
  • لذلك يجب أن يكون هناك آلية للحصول علي معلومات تلقائية حول الكود الذي سبب هذا الخطاً في التطبيق الخاص بك دون ان يشعر المستخدم به وكذلك للمستخدم النهائي. لذلك هذه المقالة سوف تعلمك تسجيل تلك الأخطاء و الاستثناءات في تخزين معزول وإرساله إلى المطور عبر خدمة ويب أو البريد الإلكتروني لسرعة التصحيح هذه الأخطاء من خلال كتابة بضعة أسطر من التعليمات البرمجية فقط.


التنفيذ

كتابة السجل

There is a method named Application_UnhandledException in your app.xaml.cs file التي يتم استدعاء كلما يحصل تشغيل للتطبيق بمشكلة غير معالجة. هذا الأسلوب جدا حيث يجب أن تكتب تلك الاستثناءات في ملف السجل .

private void Application_UnhandledException(object sender, ApplicationUnhandledExceptionEventArgs e)
{
string errorString = DateTime.Now.ToLocalTime().ToString() + " | " + "Message: " + e.ExceptionObject.Message + "Stack Trace: " + e.ExceptionObject.StackTrace;
WriteCrashLog(errorString);
}
 
 
public bool WriteCrashLog(string message)
{
bool result = false;
string fileName = "CRASH_LOG_FILE_NAME";
try
{
using (var store = IsolatedStorageFile.GetUserStoreForApplication())
{
using (var stream = new IsolatedStorageFileStream(fileName,
FileMode.Append,
FileAccess.Write,
store))
{
StreamWriter writer = new StreamWriter(stream);
writer.WriteLine(message);
writer.WriteLine("");
writer.Close();
stream.Close();
result = true;
}
}
}
catch (Exception ex)
{
Debug.WriteLine(ex.StackTrace);
Debug.WriteLine(ex.Message);
result = false;
}
return result;
}

أضف نقاط للتحقق

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

For adding checkpoint logs call WriteCrashLog(message) at your checkpoints. Your checkpoints will be mostly in xaml.cs files. WriteCrashLog method can be accessed using Application.Current property. Remember to use unique message texts for the different code checkpoints.

App a = Application.Current as App;
a.WriteCrashLog(message);

خلاف ذلك يمكنك أيضا إنشاء فئة ومكان ثابت WriteCrashLog method في داخله والوصول إليه من أي مكان في المشروع.

ارسال السجل

هناك نوعان من العمليات لإرسال السجل للمطور.

  1. التحميل إلي سيرفر - خادم .
  2. ارسالها عبر البريد الإلكتروني للمطور .


التحميل إلي السيرفر

إذا كان لديك سيرفر مخصص لهذا الأمر سوف يكون جيد لانه لايحمل إي تدخل من المستخدمين , يمكنك إستخدم WebClient class لرفع البيانات للسيرفر . ربما انت لست بحاجه لكل السجلات الفردية وربما لا يمثل سوي نسبة صغيرة من المستخدمين الذين يواجهوا المشاكل .

انقر هنا لمزيد من المعلومات حول إستخدام WebClient class.

الارسال عبر البريد الألكتروني للمطور

ويمكن تحقيق ذلك بسهولة عبر استخدام EmailComposeTask. انقر هنا لمذيد من التفاصيل

This page was last modified on 19 July 2013, at 07:54.
72 page views in the last 30 days.

Was this page helpful?

Your feedback about this content is important. Let us know what you think.

 

Thank you!

We appreciate your feedback.

×