Bagikan melalui


Membuat pencatat penerusan

Penerusan pencatat meningkatkan efisiensi pengelogan dengan memungkinkan Anda memilih peristiwa yang ingin Anda pantau saat Anda membangun proyek pada sistem multi-prosesor. Dengan mengaktifkan penerusan pencatat, Anda dapat mencegah peristiwa yang tidak diinginkan membuat pencatat pusat kewalahan, memperlambat waktu build, dan mengacaukan log Anda.

Untuk membuat pencatat penerusan, Anda dapat mengimplementasikan antarmuka IForwardingLogger lalu mengimplementasikan metodenya secara manual, atau menggunakan kelas ConfigurableForwardingLogger dan metode yang telah dikonfigurasi sebelumnya. (Yang terakhir sudah cukup untuk sebagian besar aplikasi.)

Mendaftarkan peristiwa dan menanggapinya

Pencatat penerusan mengumpulkan informasi tentang peristiwa build saat dilaporkan oleh mesin build sekunder, yang merupakan proses pekerja yang dibuat oleh proses build utama selama membangun pada sistem multi-prosesor. Kemudian pencatat penerusan memilih peristiwa untuk diteruskan ke pencatat pusat, berdasarkan instruksi yang telah Anda berikan.

Anda harus mendaftarkan pencatat penerusan untuk menangani peristiwa yang ingin Anda pantau. Untuk mendaftar peristiwa, pencatat harus mengambil alih metode Initialize. Metode ini sekarang mencakup parameter opsional, nodecount, yang dapat diatur ke jumlah prosesor dalam sistem. (Secara default, nilainya adalah 1.)

Contoh peristiwa yang dapat Anda pantau adalah TargetStarted, ProjectStarted, dan ProjectFinished.

Dalam lingkungan multi-prosesor, pesan peristiwa kemungkinan akan diterima secara tidak berurutan. Oleh karena itu, Anda harus mengevaluasi peristiwa dengan menggunakan penanganan aktivitas di pencatat penerusan dan memprogramnya untuk menentukan peristiwa mana yang akan diteruskan ke pengalih untuk diteruskan ke pencatat pusat. Untuk mencapai hal ini, Anda dapat menggunakan kelas BuildEventContext, yang dilampirkan ke setiap pesan, untuk membantu mengidentifikasi peristiwa yang ingin Anda teruskan, lalu meneruskan nama peristiwa ke kelas ConfigurableForwardingLogger (atau subkelasnya). Ketika Anda menggunakan metode ini, tidak ada pengkodean spesifik lainnya yang diperlukan untuk meneruskan peristiwa.

Tentukan pencatat penerusan

Setelah pencatat penerusan dikompilasi ke dalam rakitan, Anda harus memberi tahu MSBuild untuk menggunakannya selama build. Untuk melakukan ini, gunakan -FileLogger, -FileLoggerParameters, dan -DistributedFileLogger beralih bersama dengan MSBuild.exe. Sakelar -FileLogger memberi tahu MSBuild.exe bahwa pencatat langsung terpasang. Sakelar -DistributedFileLogger berarti ada file log per simpul. Untuk mengatur parameter pada pencatat penerusan, gunakan sakelar -FileLoggerParameters. Untuk informasi selengkapnya tentang ini dan sakelar MSBuild.exe lainnya, lihat Referensi baris perintah.

Pencatat sadar multi-prosesor

Saat Anda membangun proyek pada sistem multi-prosesor, pesan build dari setiap prosesor tidak secara otomatis diselingi dalam urutan terpadu. Sebagai gantinya, Anda harus menetapkan prioritas pengelompokan pesan dengan menggunakan kelas BuildEventContext yang dilampirkan ke setiap pesan. Untuk informasi selengkapnya tentang pembuatan multi-prosesor, lihat Pengelogan di lingkungan multi-prosesor.