MSBuild ile derleme günlüklerini alma
MSBuild ile komut satırı seçeneklerini kullanarak, ne kadar derleme verilerini gözden geçirmek istediğinizi ve derleme verilerini bir veya daha fazla dosyaya kaydetmek isteyip istemediğinizi belirtebilirsiniz. Derleme verilerini toplamak için özel bir günlükçü de belirtebilirsiniz. Bu konunun kapsamadığı MSBuild komut satırı seçenekleri hakkında bilgi için bkz . Komut satırı başvurusu.
Not
Visual Studio IDE kullanarak projeler derlerseniz, derleme günlüklerini gözden geçirerek bu derlemelerle ilgili sorunları giderebilirsiniz. Daha fazla bilgi için bkz . Nasıl yapılır: Derleme günlüğü dosyalarını görüntüleme, kaydetme ve yapılandırma.
Ayrıntı düzeyini ayarlama
Ayrıntı düzeyi belirtmeden MSBuild kullanarak bir proje oluşturduğunuzda, çıkış günlüğünde aşağıdaki bilgiler görüntülenir:
Son derece önemli olarak sınıflandırılan hatalar, uyarılar ve iletiler.
Bazı durum olayları.
Derlemenin özeti.
-verbosity (-v) anahtarını kullanarak çıkış günlüğünde ne kadar veri görüneceğini denetleyebilirsiniz. Sorun giderme için, en fazla bilgi sağlayan () veya diagnostic
(d
diag
ayrıntı düzeyini detailed
kullanın.
-verbosity değerini olarak ayarladığınızda derleme işlemi daha yavaş ve -verbosity diagnostic
değerini olarak ayarladığınızda daha da yavaş olabilir. detailed
msbuild MyProject.proj -t:go -v:diag
Ayrıntı ayarları
Aşağıdaki tabloda, günlük ayrıntı düzeyinin (sütun değerleri) günlüğe kaydedilen ileti türlerini (satır değerleri) nasıl etkilediği gösterilmektedir.
İleti türü / Ayrıntı | Quiet | Minimal | Normal | Ayrıntılı | Tanılama |
---|---|---|---|---|---|
Hatalar | ✅ | ✅ | ✅ | ✅ | ✅ |
Uyarılar | ✅ | ✅ | ✅ | ✅ | ✅ |
Yüksek Öneme Sahip İletiler | ✅ | ✅ | ✅ | ✅ | |
Normal önem derecesinde İletiler | ✅ | ✅ | ✅ | ||
Düşük öneme neden olan İletiler | ✅ | ✅ | |||
Ek MSBuild altyapısı bilgileri | ✅ |
Derleme günlüğünü bir dosyaya kaydetme
Derleme verilerini bir dosyaya kaydetmek için -fileLogger (fl) anahtarını kullanabilirsiniz. Aşağıdaki örnek, derleme verilerini msbuild.log adlı bir dosyaya kaydeder.
msbuild MyProject.proj -t:go -fileLogger
Aşağıdaki örnekte, günlük dosyası MyProjectOutput.log olarak adlandırılır ve günlük çıkışının ayrıntı düzeyi olarak diagnostic
ayarlanır. Bu iki ayarı -fileLoggerParameters (flp
) anahtarını kullanarak belirtirsiniz.
msbuild MyProject.proj -t:go -fl -flp:logfile=MyProjectOutput.log;verbosity=diagnostic
Daha fazla bilgi için bkz . Komut satırı başvurusu.
Günlük çıkışını birden çok dosyaya kaydetme
Aşağıdaki örnek, günlüğün tamamını msbuild1.log, yalnızca JustErrors.log hataları ve yalnızca JustWarnings.log uyarıları kaydeder. Örnek, üç dosyanın her biri için dosya numaralarını kullanır. Dosya numaraları -fl ve -flp anahtarlarından hemen sonra belirtilir (örneğin, -fl1
ve -flp1
).
2 ve 3 dosyaları için -fileLoggerParameters (flp
) anahtarları, her dosyaya nelerin adlandırılacağını ve her dosyaya nelerin ekleneceğini belirtir. 1. dosya için ad belirtilmediğinden , varsayılan msbuild1.log adı kullanılır.
msbuild MyProject.proj -t:go -fl1 -fl2 -fl3 -flp2:logfile=JustErrors.log;errorsonly -flp3:logfile=JustWarnings.log;warningsonly
Noktalı virgülleri (örneğin bash) yorumlayan bir kabuk kullanıyorsanız, komut ayırıcı olarak yorumlanmasını önlemek için noktalı virgül içeren herhangi bir seçeneğin çevresine tek veya çift tırnak işareti koyun. Daha fazla bilgi için bkz . Komut satırı başvurusu.
İkili günlük kaydetme
-binaryLogger (bl) anahtarını kullanarak günlüğü sıkıştırılmış, ikili biçimde kaydedebilirsiniz. Bu günlük, derleme işleminin ayrıntılı bir açıklamasını içerir ve belirli günlük çözümleme araçları tarafından okunabilir.
Aşağıdaki örnekte binarylogfilename adlı bir ikili günlük dosyası oluşturulur.
-bl:binarylogfilename.binlog
İkili günlükleri, olup bitenleri görmeyi çok daha kolay hale getirecek şekilde görüntülemek için Yapılandırılmış günlük görüntüleyicisini kullanabilirsiniz.
Daha fazla bilgi için bkz . Komut satırı başvurusu.
Özel günlükçü kullanma
Arabirimi uygulayan ILogger yönetilen bir tür yazarak kendi günlükçünüzü yazabilirsiniz. Örneğin, e-postada derleme hataları göndermek, bunları bir veritabanına kaydetmek veya bir XML dosyasında günlüğe kaydetmek için özel bir günlükçü kullanabilirsiniz. Daha fazla bilgi için bkz . Günlükçü oluşturma.
MSBuild komut satırında, -logger anahtarını kullanarak özel günlükçü'leri belirtirsiniz. Varsayılan konsol günlükçüsünü devre dışı bırakmak için -noconsolelogger anahtarını da kullanabilirsiniz.