mirror of
https://github.com/ocaml-tracing/ocaml-trace.git
synced 2026-03-08 03:47:57 -04:00
39 lines
1.1 KiB
OCaml
39 lines
1.1 KiB
OCaml
open Common_
|
|
|
|
type output =
|
|
[ `Stdout
|
|
| `Stderr
|
|
| `File of string
|
|
]
|
|
|
|
let collector = Fcollector.create
|
|
|
|
let setup ?(out = `Env) () =
|
|
match out with
|
|
| `Stderr -> Trace_core.setup_collector @@ Fcollector.create ~out:`Stderr ()
|
|
| `Stdout -> Trace_core.setup_collector @@ Fcollector.create ~out:`Stdout ()
|
|
| `File path ->
|
|
Trace_core.setup_collector @@ Fcollector.create ~out:(`File path) ()
|
|
| `Env ->
|
|
(match Sys.getenv_opt "TRACE" with
|
|
| Some ("1" | "true") ->
|
|
let path = "trace.fxt" in
|
|
let c = Fcollector.create ~out:(`File path) () in
|
|
Trace_core.setup_collector c
|
|
| Some "stdout" ->
|
|
Trace_core.setup_collector @@ Fcollector.create ~out:`Stdout ()
|
|
| Some "stderr" ->
|
|
Trace_core.setup_collector @@ Fcollector.create ~out:`Stderr ()
|
|
| Some path ->
|
|
let c = Fcollector.create ~out:(`File path) () in
|
|
Trace_core.setup_collector c
|
|
| None -> ())
|
|
|
|
let with_setup ?out () f =
|
|
setup ?out ();
|
|
Fun.protect ~finally:Trace_core.shutdown f
|
|
|
|
module Internal_ = struct
|
|
let mock_all_ = Fcollector.Internal_.mock_all_
|
|
let on_tracing_error = on_tracing_error
|
|
end
|