Loggers Multi-Processor مدركين للكتابة
القدرة MSBuildيمكن إنقاص 3.5 للاستفادة من العديد من المعالجات وقت بنية ing مشروع، ولكن كما يضيف تعقيدات إلى بنية تسجيل الأحداث. في بيئة معالج فردي، والأحداث، والرسائل، والتحذيرات، و أخطاء تصل المسجل بطريقة أفضل، متسلسلة. ومع ذلك، في بيئة متعدد المعالجات، الأحداث من المصادر مختلفة يمكن أن تصل في نفس الوقت أو خارج تسلسل. إلى توفر لهذا، MSBuild3.5 يوفر مسجل multi-processor مدركين ونموذج تسجيل جديد، ويسمح لك بإنشاء cusإلىm "اعاده توجيه loggers."
multi-Processor تسجيل تحديات
عندما تقوم ببنية مشروع أو أكثر تشغيل النظام متعدد المعالجات أو multi-core، MSBuildأحداث البناء لكافة مشاريع التي يتم إنشاؤها في نفس الوقت. قد تصل avalanche رسائل حدث في المسجل نفس الوقت أو خارج التسلسل. لأن MSBuildالمسجل 2.0 هو غير مصممة لمعالجة th هو الحالة، يمكن يغمر المسجل ويؤدي أوقات الإنشاء المتزايد إخراج المسجل غير صحيح أو حتى قطع البناء. إلى معالجة هذه المشكلات، MSBuild3.5 المسجل يمكن معالجة إلغاء تسلسل الأحداث وربط الأحداث والمصادر الخاصة بهم.
يمكنك تحسين الكفاءة تسجيل أكبر بواسطة إنشاء مسجل مخصص لإعادة توجيه. cusإلىm إعادة توجيه تصرفات المسجل كعامل تصفية باختيار letting، قبل إنشاء، الأحداث التي تريدها فقط إلى moniإلىr. عند استخدام مسجل مخصص لإعادة توجيه، أحداث غير مرغوب فيها لا يغمر المسجل في تجميع السجلات أو بنية مرة/مرات بطيئة.
multi-Processor تسجيل النماذج
إلى توفر للمشاكل ذات الصلة processor multi البنية MSBuildيدعم 3.5 النموذجين للتسجيل، مركزية وموزعة.
نموذج تسجيل دخول مركزي
يعمل في نموذج التسجيل المركزي، مثيل منفرد من MSBuild.exe كـ إرفاق "العقده المركزيه"، ومثيلات تابعة للعقدة المركزية ("العقد الثانوي") إلى العقدة المركزية للمساعدة على إجراء tكـks الإنشاء.
loggers أنواع المختلفة التي ترفق إلى العقدة المركزية التي تعرف باسم "loggers المركزيه". يمكن إرفاق مثيل واحد فقط لكل نوع من أنواع المسجل إلى العقدة المركزية في نفس الوقت.
عندما تحدث بنية، توجيه العقد الثانوي الخاص بهم أحداث البناء إلى العقدة المركزية. العقدة المركزية بتوجيه الجميع الأحداث الخاصة به، وكذلك تلك الخاصة بالعقد الثانوي، إلى واحد أو المزيد loggers المركزية المرفق. loggers إنشاء ملفات السجل التي تستند إلى بيانات الواردة.
على الرغم من فقط ILoggerهو المطلوبة لتطبيقه بالمسجِّل مركزي، نوصي أن أيضا تطبيق INodeLoggerحيث تهيئة المسجل مركزي بعدد العقد التي تقوم بالمشاركة في البناء. التحميل الزائد التالي من Initializeاستدعاء الأسلوب عند تهيئة المحرك مسجل.
public interface INodeLogger: ILogger
{
public void Initialize(IEventSource eventSource, int nodeCount);
}
موجود من قبل أي ILogger-المستندة إلى loggers يمكن أن تعمل ك loggers المركزية ويمكن الإرفاق إلى بنية. ومع ذلك، قد قطع loggers المركزي كتابتها بدون دعم صريح لسيناريوهات تسجيل متعدد المعالجات وإلغاء ترتيب الأحداث بنية أو ينتج إخراج الغامضة.
نموذج الدخول المُوزَع
يغمر المركزية في نموذج التسجيل المركزي، كبير حركة المرور الواردة لرسالة عقدة، على سبيل المثال، عند بنية عدة مشاريع في نفس الوقت. وهذا يمكن stress موارد النظام وتقليل بنية الأداء. لتسهيل هذه المشكلة، MSBuild3.5 يعتمد طراز التسجيل الموزعة.
توسيع الطراز تسجيل موزع الطراز التسجيل المركزي بالسماح لك بإنشاء مسجل إعادة توجيه.
إعادة توجيه Loggers
مسجل إعادة توجيه ثانوي، خفيفة المسجل الذي يحتوي على حدث عامل تصفية الذي يصل إلى عقده ثانوية و يتلقى الأحداث البناء الواردة من تلك العقدة. لتصفية الأحداث الواردة ويقوم بإعادة توجيه فقط تلك التي تقوم بتعيينها إلى العقدة المركزية. Th هو تصغير الرسالة حركة المرور التي هو إرسالها إلى العقدة المركزية وتحسين الأداء الكلي للبناء.
هناك طريقتان إلى توزيع استخدام تسجيل الدخول، كما يلي:
يخصص المسجل إعادة توجيه pre-fabricated باسم ConfigurableForwardingLogger.
قم بكتابة المسجل المخصص لإعادة التوجيه الخاص بك.
يمكنك تعديل ConfigurableForwardingLogger إلى تناسب احتياجاتك. للقيام بذلك، الاتصال المسجل على سطر الأوامر باستخدام MSبنية.exe، وسرد بنية الأحداث التي تريدها المسجل لإعادة توجيه إلى العقدة المركزية.
كـ بدلاً من ذلك، يمكنك إنشاء مسجل مخصص لإعادة توجيه. بواسطة إنشاء مسجل مخصص لإعادة توجيه، فيمكنك ضبط سلوك المسجل. على الرغم من ذلك، إنشاء مسجل مخصص لإعادة توجيه هو أكثر تعقيداً من تخصيص ConfigurableForwardingLogger فقط. لمزيد من المعلومات، راجع قم بإنشاء إعادة توجيه Loggers.
استخدام ConfigurableForwardingLogger بسيط الموزعة تسجيل
إلى إرفاق مسجل إعادة توجيه cusإلىm أو ConfigurableForwardingLogger، استخدم /distributedloggerالتبديل ( /dlاختصاراً) في MSBuild.exe سطر الأوامر البنية. التنسيق الخاص بتحديد أسماء أنواع المسجل و clكـses هو نفسه كـ /loggerالتبديل h دائماً مسجل موزعة فيما عدا الذي كـ clكـses تسجيل اثنين بدلاً من واحدة والمسجل إعادة التوجيه والمسجل مركزي. يلي هو مثال عن كيفية يرفق مسجل مخصص لإعادة توجيه يسمى XMLForwardingLogger.
C:\ WINDOWS\Microsoft.NET\Framework\v3.5>msbuild.exe myproj.proj/distributedlogger:XMLCentralLogger,MyLogger,Version=1.0.2,Culture=neutral*XMLForwardingLogger,MyLogger,Version=1.0.2,Culture=neutral
ملاحظة
يجب على علامة النجمة (*) (*) بفصل أسماء الثاني المسجل في /dlتبديل.
استخدام ConfigurableForwardingLogger يشبه استخدام أي غير ذلك المسجل (كما هو موضح في نظرة عامة حول تسجيل في MSBuild)، إلا أن قمت بإرفاق المسجل ConfigurableForwardingLogger بدلاً من النموذجية MSBuildمسجل وتعيين كمعلمات الأحداث التي تريد ConfigurableForwardingLogger بالمرور العقدة المركزية.
على سبيل المثال، إذا كنت تريد إلى يتم إعلامك عندما يبدأ بناء وينتهي، وعند حدوث خطأ، فسيتم تمرير BUILDSTARTEDEVENT، BUILDFINISHEDEVENT، و ERROREVENTكمعلمات. يمكن تمرير معلمات متعددة بواسطة فصلها بفاصلة منقوطة. يلي هو مثال عن كيفية استخدام ConfigurableForwardingLogger للأمام فقط BUILDSTARTEDEVENT، BUILDFINISHEDEVENT، و ERROREVENTالأحداث.
C:\ WINDOWS\Microsoft.NET\Framework\v3.5>msbuild.exe myproj.proj /distributedlogger:XMLCentralLogger,MyLogger,Version=1.0.2,Culture=neutral*ConfigureableForwardingLogger,C:\My.dll;BUILDSTARTEDEVENT; BUILDFINISHEDEVENT;ERROREVENT
يلي هو lهوt ConfigurableForwardingLogger المعلمات متوفر.
معلمات ConfigurableForwardingLogger |
---|
buildstartedevent |
buildfinishedevent |
projectstartedevent |
projectfinishedevent |
targetstartedevent |
targetfinishedevent |
taskstartedevent |
taskfinishedevent |
errorevent |
warningevent |
highmessageevent |
normalmessageevent |
lowmessageevent |
customevent |
سطر الأوامر |
performancesummary |
nosummary |
showcommandline |