Mendapatkan log build dengan MSBuild

Dengan menggunakan opsi baris perintah dengan MSBuild, Anda dapat menentukan berapa banyak data build yang ingin Anda tinjau dan apakah Anda ingin menyimpan data build ke satu atau beberapa file. Anda juga dapat menentukan pencatat kustom untuk mengumpulkan data build. Untuk informasi tentang opsi baris perintah MSBuild yang tidak dibahas topik ini, lihat Referensi baris perintah.

Catatan

Jika Anda membangun proyek dengan menggunakan Visual Studio IDE, Anda dapat memecahkan masalah build tersebut dengan meninjau log build. Untuk informasi selengkapnya, lihat Cara: Menampilkan, menyimpan, dan mengonfigurasi file log build.

Tetapkan tingkat detail

Saat Anda membangun proyek menggunakan MSBuild tanpa menentukan tingkat detail, informasi berikut muncul di log output:

  • Kesalahan, peringatan, dan pesan yang dikategorikan sangat penting.

  • Beberapa peristiwa status.

  • Ringkasan build.

Dengan menggunakan sakelar -verbosity (-v), Anda dapat mengontrol berapa banyak data yang muncul di log output. Untuk pemecahan masalah, gunakan tingkat verbositas dari detailed (d) atau diagnostic (diag), yang memberikan informasi terbanyak.

Proses build mungkin lebih lambat ketika Anda mengatur -verbosity ke detailed dan bahkan lebih lambat ketika Anda mengatur -verbosity ke diagnostic.

msbuild MyProject.proj -t:go -v:diag

Pengaturan verbositas

Tabel berikut memperlihatkan bagaimana verbositas log (nilai kolom) memengaruhi jenis pesan (nilai baris) mana yang dicatat.

Jenis pesan / Verbosity Tenang Minimal Normal Terperinci Ekstensi
Kesalahan
Peringatan
Pesan yang sangat penting
Pesan penting normal
Pesan dengan tingkat kepentingan rendah
Informasi mesin MSBuild tambahan

Menyimpan log build ke file

Anda dapat menggunakan sakelar -fileLogger (fl) untuk menyimpan data build ke file. Contoh berikut menyimpan data build ke file bernama msbuild.log.

msbuild MyProject.proj -t:go -fileLogger

Dalam contoh berikut, file log diberi nama MyProjectOutput.log, dan verbositas output log diatur ke diagnostic. Anda menentukan dua pengaturan tersebut dengan menggunakan sakelar -fileLoggerParameters (flp).

msbuild MyProject.proj -t:go -fl -flp:logfile=MyProjectOutput.log;verbosity=diagnostic

Untuk informasi selengkapnya, lihat Referensi baris perintah.

Simpan output log ke beberapa file

Contoh berikut menyimpan seluruh log ke msbuild1.log, hanya kesalahan ke JustErrors.log, dan hanya peringatan untuk JustWarnings.log. Contohnya menggunakan nomor file untuk masing-masing dari tiga file. Nomor file ditentukan tepat setelah sakelar -fl dan -flp (misalnya, -fl1 dan -flp1).

Sakelar -fileLoggerParameters (flp) untuk file 2 dan 3 menentukan apa yang harus dinamai setiap file dan apa yang harus disertakan dalam setiap file. Tidak ada nama yang ditentukan untuk file 1, sehingga nama default msbuild1.log digunakan.

msbuild MyProject.proj -t:go -fl1 -fl2 -fl3 -flp2:logfile=JustErrors.log;errorsonly -flp3:logfile=JustWarnings.log;warningsonly

Untuk informasi selengkapnya, lihat Referensi baris perintah.

Menyimpan log biner

Anda dapat menyimpan log dalam format biner terkompresi menggunakan sakelar -binaryLogger (bl). Log ini mencakup deskripsi terperinci tentang proses build dan dapat dibaca oleh alat analisis log tertentu.

Dalam contoh berikut, file log biner dibuat dengan nama binarylogfilename.

-bl:binarylogfilename.binlog

Anda dapat menggunakan penampil log Terstruktur untuk melihat log biner dengan cara yang membuatnya jauh lebih mudah untuk melihat apa yang terjadi.

Untuk informasi selengkapnya, lihat Referensi baris perintah.

Menggunakan pencatat kustom

Anda dapat menulis pencatat Anda sendiri dengan penulisan jenis terkelola yang mengimplementasikan ILogger antarmuka. Anda dapat menggunakan pencatat kustom, misalnya, untuk mengirim kesalahan build dalam email, mencatatnya ke database, atau mencatatnya ke file XML. Untuk informasi selengkapnya, lihat Membangun pencatat.

Di baris perintah MSBuild, Anda menentukan pencatat kustom dengan menggunakan sakelar -logger. Anda juga dapat menggunakan sakelar -noconsolelogger untuk menonaktifkan pencatat konsol default.