MSBuild でのビルド ログの取得Obtaining Build Logs with MSBuild

MSBuild でスイッチを使用することで、確認するビルド データの量とビルド データを 1 つ以上のファイルに保存するかどうかを指定できます。By using switches with MSBuild, you can specify how much build data you want to review and whether you want to save build data to one or more files. カスタム ロガーを指定して、ビルド データを収集することもできます。You can also specify a custom logger to collect build data. このトピックで説明されていない MSBuild コマンド ライン スイッチの詳細については、「Command-Line Reference (コマンド ライン リファレンス)」を参照してください。For information about MSBuild command-line switches that this topic doesn't cover, see Command-Line Reference.

注意

Visual Studio IDE を使用してプロジェクトをビルドする場合は、ビルド ログを確認することで、それらのビルドをトラブルシューティングできます。If you build projects by using the Visual Studio IDE, you can troubleshoot those builds by reviewing build logs. 詳細については、「方法: ビルド ログ ファイルを表示、保存、および構成する」をご覧ください。For more information, see How to: View, Save, and Configure Build Log Files.

詳細レベルを設定するSetting the level of detail

詳細レベルを指定せずに MSBuild を使用して、プロジェクトをビルドすると、出力ログに次の情報が表示されます。When you build a project by using MSBuild without specifying a level of detail, the following information appears in the output log:

  • 重要度 - 高として分類されたエラー、警告、メッセージ。Errors, warnings, and messages that are categorized as highly important.

  • 一部の状態イベント。Some status events.

  • ビルドの概要。A summary of the build.

    /verbosity (/v) スイッチを使用して、出力ログに表示するデータ量を制御できます。By using the /verbosity (/v) switch, you can control how much data appears in the output log. トラブルシューティングを行う場合は、detailed (d) または diagnostic (diag) のいずれかの詳細レベルを使用します。後者は情報が最も多くなります。For troubleshooting, use a verbosity level of either detailed (d) or diagnostic (diag), which provides the most information.

    /verbositydetailed に設定すると、ビルド処理は遅くなることがあります。また、/verbositydiagnostic に設定するとさらに遅くなる可能性があります。The build process may be slower when you set the /verbosity to detailed and even slower when you set the /verbosity to diagnostic.

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

ビルド ログをファイルに保存するSaving the build log to a file

/fileLogger (fl) スイッチを使用して、ビルド データをファイルに保存することができます。You can use the /fileLogger (fl) switch to save build data to a file. 次の例では、ビルド データを msbuild.log という名前のファイルに保存します。The following example saves build data to a file that's named msbuild.log.

msbuild MyProject.proj /t:go /fileLogger  

次の例では、ログ ファイルに MyProjectOutput.log という名前を付けて、ログ出力の詳細度を diagnostic に設定しています。In the following example, the log file is named MyProjectOutput.log, and the verbosity of the log output is set to diagnostic. /filelogparameters (flp) スイッチを使用して、これら 2 つの設定を指定します。You specify those two settings by using the /filelogparameters (flp) switch.

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

詳細については、「Command-Line Reference (コマンド ライン リファレンス)」を参照してください。For more information, see Command-Line Reference.

ログ出力を複数のファイルに保存するSaving the log output to multiple files

次の例では、ログ全体を msbuild1.log に、エラーのみを JustErrors.log に、警告のみを JustWarnings.log に保存します。The following example saves the entire log to msbuild1.log, just the errors to JustErrors.log, and just the warnings to JustWarnings.log. 例では、3 つのファイルのそれぞれを表すファイル番号を使用します。The example uses file numbers for each of the three files. ファイル番号は、/fl スイッチと /flp スイッチの直後に指定されています (/fl1/flp1 など)。The file numbers are specified just after the /fl and /flp switches (for example, /fl1 and /flp1).

ファイル 2 とファイル 3 の /filelogparameters (flp) スイッチは、各ファイルの名前と各ファイルに含まれる内容を指定します。The /filelogparameters (flp) switches for files 2 and 3 specify what to name each file and what to include in each file. ファイル 1 には名前が指定されていないため、既定の名前である msbuild1.log が使用されます。No name is specified for file 1, so the default name of msbuild1.log is used.

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

詳細については、「Command-Line Reference (コマンド ライン リファレンス)」を参照してください。For more information, see Command-Line Reference.

カスタム ロガーを使用するUsing a custom logger

ILogger インターフェイスを実装するマネージ型を記述することにより、独自のロガーを作成できます。You can write your own logger by authoring a managed type that implements the ILogger interface. たとえば、カスタム ロガーを使用して、ビルド エラーをメールで送信する、データベースにログを記録する、または XML ファイルにログを記録することができます。You might use a custom logger, for instance, to send build errors in email, log them to a database, or log them to an XML file. 詳細については、「ビルド ロガー」を参照してください。For more information, see Build Loggers.

MSBuild コマンドラインでは、/logger スイッチを使用してカスタム ロガーを指定します。In the MSBuild command line, you specify the custom logger by using the /logger switch. また、/noconsolelogger スイッチを使用して、既定のコンソール ロガーを無効にすることもできます。You can also use the /noconsolelogger switch to disable the default console logger.

関連項目See Also

LoggerVerbosityLoggerVerbosity
ビルド ロガー Build Loggers
マルチプロセッサ環境でのログ Logging in a Multi-Processor Environment
転送 logger の作成 Creating Forwarding Loggers
MSBuild の概念MSBuild Concepts