Log the warning messages in a text file from a cak

2019-06-25 08:21发布

I'm using the below cake script to compile my C# project. There are few warning messages shown in PowerShell while executing the script. I like to log the warnings in a text file which is in a physical location(ex: D:\WarningReport.txt). The below is the cake script task I use to compile the project.

Task("Build")
    .Does(() =>
{
    if(IsRunningOnWindows())
    {
      MSBuild("./src/Example.sln", settings =>
        settings.SetConfiguration(configuration));
    }
});

I like to add something like below,

LogWarningMessagesTo("D:\WarningReportes.txt");
LogErrorMessagesTo("D:\ErrorReportes.txt");

How to do this?

1条回答
beautiful°
2楼-- · 2019-06-25 09:16

If it's warnings and errors from MSBuild alias you want to log that's certainly possible using the AddFileLogger extension method on the MSBuildSettings parameter.

Basically change

  MSBuild("./src/Example.sln", settings =>
    settings.SetConfiguration(configuration));

to

MSBuild("./src/Example.sln", settings =>
    settings.SetConfiguration(configuration)
            .AddFileLogger(new MSBuildFileLogger {
                LogFile ="D:/WarningReportes.txt",
                MSBuildFileLoggerOutput = MSBuildFileLoggerOutput.WarningsOnly })
            .AddFileLogger(new MSBuildFileLogger {
                LogFile ="D:/ErrorReportes.txt",
                MSBuildFileLoggerOutput = MSBuildFileLoggerOutput.ErrorsOnly })
  );
查看更多
登录 后发表回答