Shh, Keep it Quiet

Sometimes you just wish there was a way to make it secret.  It was really simple.

<target name=“test“ >
  <exec program=“ping“ commandline=“localhost“ output=“c:tempping.log“ />
  <echo message=“before“/>
  <loglevel level=“None“>
    <do>
      <exec program=“ping“ commandline=“localhost“ output=“c:tempping.log“/>
    </do>
  </loglevel>
  <echo message=“after“/>
</target>

test:

     [exec] Starting ‘ping (localhost)’ in ‘C:\Projects\CI Factory\Current\Product\nAnt Scratch’  
     [exec]   
     [exec]   
     [exec] Pinging jflowersxp5.CHCSII.COM [::1] with 32 bytes of data:  
     [exec]   
     [exec]   
     [exec]   
     [exec] Reply from ::1: time<1ms   
     [exec]   
     [exec] Reply from ::1: time<1ms   
     [exec]   
     [exec] Reply from ::1: time<1ms   
     [exec]   
     [exec] Reply from ::1: time<1ms   
     [exec]   
     [exec]   
     [exec]   
     [exec] Ping statistics for ::1:  
     [exec]   
     [exec]     Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),  
     [exec]   
     [exec] Approximate round trip times in milli-seconds:  
     [exec]   
     [exec]     Minimum = 0ms, Maximum = 0ms, Average = 0ms  
     [exec]   
     [echo] before  
     [echo] after

BUILD SUCCEEDED

Total time: 7.1 seconds.

[TaskName(“loglevel”)]
public class LogLevelTask : Task
{
    private Level _LogLevel;
    private TaskContainer _Tasks;

    [BuildElement(“do”, Required = true)]
    public TaskContainer Tasks
    {
        get
        {
            return _Tasks;
        }
        set
        {
            _Tasks = value;
        }
    }

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

    protected override void ExecuteTask()
    {
        Level OldLevel = this.Project.Threshold;
        this.Project.Threshold = this.LogLevel;
        this.Tasks.Execute();
        this.Project.Threshold = OldLevel;

    }
}