MSBuild でコマンド ライン オプションを使用すると、確認するビルド データの量と、ビルド データを 1 つ以上のファイルに保存するかどうかを指定できます。 ビルド データを収集するカスタム ロガーを指定することもできます。 このトピックで取り上げない MSBuild コマンド ライン オプションの詳細については、「 コマンド ライン リファレンス」を参照してください。
注
Visual Studio IDE を使用してプロジェクトをビルドする場合は、ビルド ログを確認してそれらのビルドのトラブルシューティングを行うことができます。 詳細については、ビルド ログ ファイルを表示、保存、および構成する」をご覧ください。
詳細レベルを設定する
詳細レベルを指定せずに MSBuild を使用してプロジェクトをビルドすると、出力ログに次の情報が表示されます。
重大なカテゴリに分類されるエラー、警告、およびメッセージ。
一部の状態イベント。
ビルドの概要。
-verbosity (-v) スイッチを使用すると、出力ログに表示されるデータの量を制御できます。 トラブルシューティングを行うには、最も多くの情報を提供する detailed (d) または diagnostic (diag) のいずれかの詳細レベルを使用します。
-verbosityをdetailedに設定すると、ビルド プロセスが遅くなり、-verbosityを diagnostic に設定するとさらに遅くなる場合があります。
msbuild MyProject.proj -t:go -v:diag
詳細度の設定
次の表は、ログの詳細度 (列値) が、ログに記録されるメッセージの種類 (行値) にどのように影響するかを示しています。
| メッセージの種類と詳細 | 静か | 最小限 | 正常 | 詳細 | 診断 |
|---|---|---|---|---|---|
| エラー | ✅ | ✅ | ✅ | ✅ | ✅ |
| 警告 | ✅ | ✅ | ✅ | ✅ | ✅ |
| 重要度の高いメッセージ | ✅ | ✅ | ✅ | ✅ | |
| 通常の重要度のメッセージ | ✅ | ✅ | ✅ | ||
| 重要度の低いメッセージ | ✅ | ✅ | |||
| その他の MSBuild エンジン情報 | ✅ |
ビルド ログをファイルに保存する
-fileLogger (-fl) スイッチを使用して、ビルド データをファイルに保存できます。 次の例では、ビルド データを msbuild.log という名前のファイルに保存します。
msbuild MyProject.proj -t:go -fileLogger
次の例では、ログ ファイルの名前は MyProjectOutput.log で、ログ出力の詳細度は diagnostic に設定されています。 これらの 2 つの設定は、 -fileLoggerParameters (-flp) スイッチを使用して指定します。
msbuild MyProject.proj -t:go -fl -flp:logfile=MyProjectOutput.log;verbosity=diagnostic
詳細については、 コマンド ライン リファレンスを参照してください。
ログ出力を複数のファイルに保存する
次の例では、ログ全体を msbuild1.logに保存し、エラーだけを JustErrors.logし、警告だけを JustWarnings.logに保存します。 この例では、3 つのファイルごとにファイル番号を使用します。 ファイル番号は、 -fl スイッチと -flp スイッチの直後に指定されます (たとえば、 -fl1 と -flp1)。
ファイル 2 とファイル 3 の -fileLoggerParameters (-flp) スイッチは、各ファイルの名前と各ファイルに含める内容を指定します。 ファイル 1 には名前が指定されていないため、 msbuild1.log の既定の名前が使用されます。
msbuild MyProject.proj -t:go -fl1 -fl2 -fl3 -flp2:logfile=JustErrors.log;errorsonly -flp3:logfile=JustWarnings.log;warningsonly
セミコロン (bash など) を解釈するシェルを使用している場合は、セミコロンを含むオプションを単一引用符または二重引用符で囲んで、コマンド区切り記号として解釈されないようにします。 詳細については、 コマンド ライン リファレンスを参照してください。
バイナリ ログを保存する
-binaryLogger (-bl) スイッチを使用して、ログを圧縮されたバイナリ形式で保存できます。 このログには、ビルド プロセスの詳細な説明が含まれており、特定のログ分析ツールで読み取ることができます。
次の例では、 binarylogfilename という名前のバイナリ ログ ファイルが作成されます。
-bl:binarylogfilename.binlog
構造化ログ ビューアーを使用すると、バイナリ ログを表示して、何が起こっているのかを簡単に確認できます。
詳細については、 コマンド ライン リファレンスを参照してください。
カスタム ロガーを使用する
ILogger インターフェイスを実装するマネージド型を作成することで、独自のロガーを作成できます。 たとえば、カスタム ロガーを使用して、ビルド エラーを電子メールで送信したり、データベースにログを記録したり、XML ファイルにログを記録したりできます。 詳細については、「ロガーの ビルド」を参照してください。
MSBuild コマンド ラインでは、 -logger スイッチを使用してカスタム ロガーを指定します。 -noconsolelogger スイッチを使用して、既定のコンソール ロガーを無効にすることもできます。
関連コンテンツ
- LoggerVerbosity
- ロガーをビルドする
- マルチプロセッサ環境でのログ記録
- 転送ロガーの作成
- MSBuild の概念