MSBuild를 사용하여 빌드 로그 가져오기Obtaining Build Logs with MSBuild

MSBuild에서 스위치를 사용하면 검토할 빌드 데이터의 양과 하나 이상의 파일에 빌드 데이터를 저장할지를 지정할 수 있습니다.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 명령줄 스위치에 대한 자세한 내용은 명령줄 참조를 참조하세요.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) 스위치를 사용하여 이 두 설정을 지정합니다.You specify those two settings by using the /filelogparameters (flp) switch.

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

자세한 내용은 명령줄 참조를 참조하세요.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. 파일 번호는 /fl1/flp1과 같이 /fl/flp 스위치 바로 뒤에 지정됩니다.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  

자세한 내용은 명령줄 참조를 참조하세요.For more information, see Command-Line Reference.

사용자 지정 로거 사용Using a custom logger

<xref:Microsoft.Build.Framework.ILogger> 인터페이스를 구현하는 관리되는 형식을 만들어 자체의 로거를 작성할 수 있습니다.You can write your own logger by authoring a managed type that implements the <xref:Microsoft.Build.Framework.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

<xref:Microsoft.Build.Framework.LoggerVerbosity><xref:Microsoft.Build.Framework.LoggerVerbosity>
빌드 로거 Build Loggers
다중 프로세서 환경에서의 로그인 Logging in a Multi-Processor Environment
전달 로거 만들기 Creating Forwarding Loggers
MSBuild 개념MSBuild Concepts