anchor.diff:  type TraceMode =
   | Console
   | Xml
  +
  +type Message = 
  +    { Text      : string
  +      Color     : ConsoleColor
  +      Newline   : bool
  +      Important : bool}
  +
  +let private defaultMessage = 
  +    { Text      = ""
  +      Color     = ConsoleColor.White
  +      Newline   = true
  +      Important = false }
  +
  +/// Logs the specified string to the console
  +let private logMessageToConsole important newLine s =     
  +    if important && buildServer <> CCNet then
  +        if newLine then
  +            eprintfn "%s" (toRelativePath s)
  +        else 
  +            eprintf "%s" (toRelativePath s)
  +    else
  +        if newLine then
  +            printfn "%s" (toRelativePath s)
  +        else 
  +            printf "%s" (toRelativePath s)
  +
  +let private appendXML line = AppendToFile xmlOutputFile [line]
   
   /// The actual trace mode.
   let mutable traceMode = 
       match buildServer with
       | TeamCity   -> Console
       | CCNet      -> Xml
  -    | LocalBuild -> Console
  -    
  -let appendXML line = AppendToFile xmlOutputFile [line]
  -
  -let mutable openTags = []
  +    | LocalBuild -> Console    
   
   /// Trace verbose output
   let mutable verbose = hasBuildParam "verbose"
  
positive.code: /// Logs the specified string if the verbose mode is activated.
  let logVerbosefn fmt = Printf.ksprintf (if verbose then log else ignore) fmt
  
  /// Writes a trace to the command line (in the given color)
  let logColored important color newLine message =
    Console.ForegroundColor <- color    
    logMessage important newLine message
    Console.ForegroundColor <- ConsoleColor.White     
      
  /// Writes a trace to the command line (in green)
  let trace s = logColored false ConsoleColor.Green true s
  
negative.code: let fakePath = productName.GetType().Assembly.Location
         
  /// Gets the FAKE version no.
  let fakeVersion = productName.GetType().Assembly.GetName().Version
  
  let private buffer = MailboxProcessor.Start (fun inbox ->
      let rec loop () = 
          async {
              let! (msg:Message) = inbox.Receive()
              match traceMode with
              | Console ->
                  let curColor = Console.ForegroundColor
                  Console.ForegroundColor <- msg.Color
                  logMessageToConsole msg.Important msg.Newline msg.Text
                  Console.ForegroundColor <- curColor
              | Xml     -> appendXML msg.Text
  
              return! loop ()}
  
      loop ())
      
  let mutable private openTags = []
  
  /// Writes a XML message to the bufffer.
  let xmlMessage message =
      { defaultMessage with Text = sprintf "<message level=\"Info\"><![CDATA[%s]]></message>" message }
        |> buffer.Post 
      
  /// Logs the specified string (via message buffer)
  let logMessage important newLine message =
      match traceMode with
      | Console ->
          { Text = message; Important = important; Newline = newLine; Color = ConsoleColor.White }
            |> buffer.Post
      | Xml     -> xmlMessage message
  
  /// Logs the specified string        
  