Loggفيg في بيئة Multi-Processor
القدرة MSBuild3.5 إلى استخدم معالجات متعددة يمكنك إلى حد كبير بتقليل وقت إنشاء مشروع، ولكن ذلك أيضا بإضافة تعقيدات إلى التسجيل. في بيئة معالج فردي، يمكن المسجل hوle الأحداث الواردة، والرسائل، والتحذيرات، و الأخطاء بطريقة أفضل، متسلسلة. ومع ذلك، في بيئة متعدد المعالجات، أحداث من المصادر عديدة يمكن أن تصل في نفس الوقت أو خارج التسلسل. MSBuildيوفر 3.5 مسجلي الدخول جديدة multi-processor مدركين و تمكن من إنشاء مخصص "توجيه" loggers.
تسجيل متعددة-معالج الإنشاء
عندما تقوم ببنية مشروع أو أكثر في النظام متعدد المعالجات أو multi-core، MSBuildأحداث البناء لكافة مشاريع التي يتم إنشاؤها في نفس الوقت. قد تصل avalanche بيانات حدث في المسجل نفس الوقت أو خارج التسلسل. يمكنك يغمر المسجل ويؤدي أوقات البنية المتزايد إخراج المسجل غير صحيح أو حتى بنية المعطلة. لمعالجة هذه المشكلات MSBuild3.5 المسجل يمكن معالجة إلغاء تسلسل الأحداث وربط الأحداث والمصادر الخاصة بهم.
يمكنك تحسين الكفاءة تسجيل أكبر بواسطة إنشاء مسجل مخصص لإعادة توجيه. مسجل مخصص-إعادة التوجيه يتصرف عامل تصفية بالسماح للذي تختاره، قبل أن تقوم بإنشاء الأحداث التي تريد مراقبتها. عند استخدام مسجل مخصص لإعادة توجيه، أحداث غير مرغوب فيها لا يغمر المسجل تجميع السجلات أو بطيئة بنية مرة/مرات.
نموذج تسجيل دخول مركزي
للبنيات متعدد المعالجات، يستخدم MSBuild "نموذج تسجيل مركزي". يعمل في نموذج التسجيل المركزي، مثيل MSBuild.exe كـ الأساسي ببنية عملية أو "عقدة المركزيه". ثانوية مثيلات MSBuild.exe، أو "العقد الثانوي،" يتم إرفاق إلى العقدة المركزية. تعرف أي loggers ILogger-bكـed متصلة إلى العقدة المركزية كـ تعرف "loggers المركزيه" وعقد مرفقة بثانوية loggers كـ "loggers الثانوي".
عندما تحدث بنية، loggers الثانوية بتوجيه الأحداث الخاصة بهم نسبة استخدام الشبكة إلى loggers المركزي. نظراً لإحداث تنشأ في عدة ثانوي عقدة s، تصل بيانات المركزية عقدة في نفس الوقت لكن وتعشيق. لحل المراجع حدث للمشروع والأحداث إلى الهدف، تضمين الوسيطات أحداث إضافى بنية معلومات سياق الأحداث.
على الرغم من فقط ILoggerهو المطلوبة لتطبيقه بالمسجِّل مركزي، نوصي أن أيضا تطبيق INodeLoggerإذا كنت ترغب في أن يقوم المسجل مركزي التهيئة بعدد العقد التي تقوم بالمشاركة في البناء. التحميل الزائد التالي من Initializeأسلوب هو استدعاؤه عند تهيئة المحرك المسجل في:
public interface INodeLogger: ILogger
{
public void Initialize(IEventSource eventSource, int nodeCount);
}
نموذج الدخول المُوزَع
في نموذج التسجيل المركزي، والكثير من الرسالة الواردة نسبة استخدام الشبكة، على سبيل المثال عند العديد من مشروعات بناء في نفس الوقت، يمكن أن يغمر العقدة المركزية، stresses النظام وبناء lowers الأداء.
إلى تقليل هذه المشكلة، MSBuild أيضا من "تسجيل موزعة طراز" الذي يمتد الطراز التسجيل المركزي بواسطة السماح لك بإنشاء إعادة توجيه loggers. مسجل إعادة توجيه هو المرفقة بإحدى العقد ثانوي ويتلقى الأحداث البناء الواردة من تلك العقدة. المسجل إعادة توجيه هو تماما كمسجل عادي إلا أنه يمكن تصفية الأحداث وإعادة توجيهها تلك المطلوبة فقط إلى العقدة المركزية. وهذا يقلل من حركة المرور رسالة في العقدة المركزية و وبالتالي تمكين بشكل أفضل أداء.
يمكنك إنشاء مسجل إعادة توجيه بتنفيذ IForwardingLoggerواجهة، والتي مشتقة من ILogger. الواجهة هو يعرف:
public interface IForwardingLogger: INodeLogger
{
public IEventRedirector EventRedirector { get; set; }
public int NodeId { get; set; }
}
إلى إعادة توجيه الأحداث في مسجل إعادة توجيه، قم باستدعاء ForwardEventطريقة IEventRedirectorالواجهة. Pكـs المناسبة BuildEventArgs، أو مشتق، كـ المعلمة.
لمزيد من المعلومات، راجع قم بإنشاء إعادة توجيه Loggers.
قم بإرفاق مسجل الموزعة
إلى إرفاق مسجل موزعة تشغيل بنية سطر الأوامر، استخدم تبديل /distributedlogger(أو,/dlfأو قصير). التنسيق الخاص بتحديد أسماء أنواع المسجل والفئات هي نفسها كتلك المستخدمة ل /loggerالتبديل، فيما عدا الذي مسجل dهوtributed هو comprهوed فئتين التسجيل: مسجل إعادة توجيه ومسجل مركزي. التالي مثال عن إرفاق مسجل موزعة:
C:\ WINDOWS\Microsoft.NET\Framework\v3.5.20301>msbuild.exe *.proj
/distributedlogger:XMLCentralLogger,MyLogger,Version=1.0.2,
Culture=neutral*XMLForwardingLogger,MyLogger,Version=1.0.2,
Culture=neutral
على علامة النجمة (*) (*) تفصل الأسماء المسجل الثاني في /dlتبديل.