2016-07-11 107 views
1

我試圖減少自許多小時以來由NANT腳本產生的輸出的詳細程度。減少NANT + MSBUILD中的冗長度

我已經盡力了MSBuild的命令鏈接參數設置爲:/v:m /clp:ErrorsOnly但我還是得到這樣的信息:

RestorePackages: 
    [exec]   Restoring NuGet packages... 

我也試圖設置幾乎一切都在NANT腳本冗長,但它仍然得到它在控制檯輸出

<delete verbose="true" 

我試着google了很多,但我不能設法清除NANT/MSBUILD的日誌。

回答

1

您可以創建自己的任務容器,它定義了內部代碼

 [TaskName("loglevel")] 
     public class LogLevelTask : TaskContainer 
     { 
      private Level _logLevel; 

      protected override void ExecuteTask() 
      { 
       Level oldLevel = Project.Threshold; 
       try 
       { 
        SetLogLevel(_logLevel); 
        base.ExecuteTask(); 
       } 
       finally 
       { 
        SetLogLevel(oldLevel); 
       } 
      } 

      [TaskAttribute("level", Required = true)] 
      public Level LogLevel 
      { 
       get 
       { 
        return _logLevel; 
       } 
       set 
       { 
        _logLevel = value; 
       } 
      } 

      public void SetLogLevel(Level newLevel) 
      { 
       foreach(IBuildListener listener in Project.BuildListeners) 
       { 
        IBuildLogger logger = listener as IBuildLogger; 
        if(logger != null) 
        { 
         logger.Threshold = newLevel; 
        } 
       } 
      } 
     } 

的日誌級別,那麼你可以將其添加到惡性腳本

<loglevel level="None"> <!-- You can set any other level --> 
    <!-- Do whatever you want --> 
</loglevel> 

您可以在此處詳細瞭解 http://www.neovolve.com/2008/01/16/loglevel-nant-task/