MSBuild 中記錄的概觀
更新:2007 年 11 月
MSBuild 記錄器提供自訂報告建置事件、訊息、警告與錯誤的方式。記錄器可在主控台 (Console) 視窗中顯示資訊、寫入 XML 或文字檔,或者將組建資料輸入資料庫中。
MSBuild 記錄器
記錄器是用來將來自建置事件、訊息、警告與錯誤的資訊,轉送至方便讀取和解譯的記錄檔。記錄器的邏輯是在實作 ILogger 介面的 Managed 型別中撰寫。
MSBuild 預設主控台記錄器
當您從命令列執行 MSBuild.exe 時,MSBuild 會使用預設的主控台記錄器在主控台視窗中顯示建置事件資訊。您可以在命令列上使用 /verbosity 參數,自訂記錄器要報告的細節層級。
預設的主控台記錄器接受可修改主控台視窗輸出的額外參數。這些參數是在命令列上使用 /consoleloggerparameters 參數所指定。
如果您要使用自訂記錄器,可能會希望隱藏預設主控台記錄器顯示的資訊。請在命令列上使用 /noconsolelogger 參數停用預設主控台記錄器。
MSBuild 檔案記錄器
MSBuild 亦包含檔案記錄器,用來將建置事件資訊記錄到檔案中。若要執行檔案記錄器,請在命令列中使用下列參數,其中 MyLog.log 是要儲存記錄檔資訊的檔案。
/l:FileLogger,Microsoft.Build.Engine;logfile=MyLog.log
總而言之,檔案記錄器亦接受四個參數。這些是:
Logfile:必要參數,用來指定要儲存記錄檔資訊的檔案。
Append:選擇性 boolean 參數,用來指示是否將記錄檔附加到指定的檔案:true 表示將記錄檔加入至檔案中已存在的文字,false 則表示覆寫檔案的內容。預設值為 false。
Verbosity:選擇性參數,只會覆寫這個檔案記錄器的全域詳細等級設定。這個參數可讓您記錄至數個記錄器,且各擁有不同的詳細等級。
Encoding:選擇性參數,會指定檔案的編碼,例如 UTF-8。
多個參數會以分號 (;) 分隔。例如,下列命令列會將建置事件資訊記錄至 MyLog.log 檔案,並將記錄檔附加到檔案中的文字內,而其詳細等級為 diagnostic 且編碼為 UTF-8。
MSBuild MyProj.proj /l:FileLogger,Microsoft.Build.Engine;logfile=MyLog.log append=true;verbosity=diagnostic;encoding=utf-8
指定記錄器
如果建置時要使用預設主控台記錄器以外的記錄器,請在命令列上使用 /logger 參數指定自訂記錄器。如需 MSBuild 命令列參數的詳細資訊,請參閱 MSBuild 命令列參考。
寫入記錄器
記錄器的邏輯是以 Managed 程式碼撰寫,並且在 MSBuild 命令列上使用 /logger 參數指定。
若想撰寫自己的記錄器,您可以撰寫一個實作 ILogger 介面的 Managed 型別。如需詳細資訊,請參閱 HOW TO:撰寫記錄器。