Traceswitch و Sourceswitch - ما الفرق؟
-
02-10-2019 - |
سؤال
لذلك ربما أفتقد ما هو واضح هنا ، ولكن ما هو في الواقع الفرق بين وظيفة TraceSwitch
و SourceSwitch
الطبقات؟
كلاهما يعطي أوصاف ملخص متطابقة:
يوفر مفتاح متعدد المستويات للتحكم في تتبع وإخراج تصحيح دون إعادة تجميع الكود الخاص بك.
هل تتشابه أقسام الملاحظات بشكل غريب مع عيني. هل يمكن لشخص ما توضيح الفرق في وظائفه ومسائل الاستخدام؟
(للاكتمال ، أستخدم المفاتيح مع TraceSource
كائن بدلاً من الثابت القديم Trace
الفصل ، على الرغم من أنني أشك في أنه يحدث فرقًا كبيرًا.)
المحلول
الفرق هو ذلك TraceSwitch
يعمل مع Trace
الرسائل بينما SourceSwitch
يعمل مع TraceSource
الرسائل ، التي تربط الرسائل بمصدرها. لذلك مع SourceSwitch
يمكنك تكوين مستمعيك بناءً على من أين جاءت الرسائل التتبع.
أوافق على أن الوثائق لا تشير مباشرة إلى الفرق ، ولكنها تجول في المرتبطة TraceSource
وثائق الفصل وستجد هذا:
ال
TraceSource
يتم تحديد الفئة باسم المصدر ، وعادة ما اسم التطبيق. يمكن أن تبدأ الرسائل النزرة القادمة من مكون معين بواسطة مصدر تتبع معين ، مما يتيح تحديد جميع الرسائل القادمة من هذا المكون بسهولة.
هناك أيضًا عينة توضح لك كيفية تكوين أ SourceSwitch
لإيقاف التتبع من مصدر تتبع.
نصائح أخرى
Traceswitch (الأقدم) في الأساس هو كائن tracelevel لاستخدامه في تركيبة مع فئة التتبع الثابت.
يجمع المؤثر (الأحدث) بين مفهوم tracelevel وطرق الإخراج الفعلية.
ونتيجة لذلك ، في تطبيق كبير ، يمكنك استخدام مجموعات تتبع متعددة لتكوين إعدادات التتبع لأجزاء مختلفة (واجهة المستخدم الرسومية ، DAL) من البرنامج ولكن سيتم إرسال جميع الإخراج إلى نفس تتبع (S).
مع وجود تتبع ، يمكنك الحصول على قنوات إخراج مستقلة. و API أفضل قليلاً.
قد يساعد هذا التفسير للفرق بين Tracelevel و SourceLevel: