API-Reference
The Trace
module allows to trace and output stuff into the console or to your custom environment.
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
|
#r "paket:
nuget Fake.Core.Trace //"
open Fake.Core
Trace.log "Some Information message"
Trace.logfn "Some formatted message: %s" "parameter"
Trace.trace "Some trace message"
Trace.traceImportant "Some important message"
Trace.traceFAKE "Some important message %s" "with formatting"
Trace.traceError "Trace some error"
try doSomething()
with e -> Trace.traceException e
Trace.traceLine()
Target.create "mytarget" (fun _ ->
use __ = Trace.traceTask "MyOperation" "Description"
// do my operation
__.MarkSuccess()
)
|
You can implement and set custom listeners in your fake script in order to generate custom output suitable for your environment.
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
|
#r "paket:
nuget Fake.Core.Trace //"
open Fake.Core
let mylistener =
{ new ITraceListener with
member x.Write msg =
match msg with
| StartMessage -> ()
| OpenTag _ -> ()
| CloseTag _ -> ()
| ImportantMessage text | ErrorMessage text ->
printfn "IMPORTANT: %s" text
| LogMessage(text, newLine) | TraceMessage(text, newLine) ->
printfn "LOG: %s" text
| FinishedMessage -> ()
}
CoreTracing.setTraceListener [mylistener]
|
The Trace
-Api will filter out any registered secrets before printing them into the output.
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
|
#r "paket:
nuget Fake.Core.Trace //"
open Fake.Core
// Register your secrets at the start
let secret = Environment.environVarOrDefault "nugetkey" ""
TraceSecrets.register "<REPLACEMENT>" secret
// Later FAKE will replace them and not output them (when using the FAKE-Tracing capabilites)
let cmdLine = sprintf "nuget.exe push -ApiKey %s" secret
Trace.log "NuGet failed while executing: %s" cmdLine
|
val e : exn
val mylistener : obj
val printfn : format:Printf.TextWriterFormat<'T> -> 'T
val secret : string
val cmdLine : string
val sprintf : format:Printf.StringFormat<'T> -> 'T