| `Trusting of UriManager.uri
]
-let log =
+let log ?(level = 1) =
let module U = UriManager in
function
| `Start_type_checking uri ->
- HelmLogger.log (`Msg (`DIV (1, None, `T
+ HelmLogger.log (`Msg (`DIV (level, None, `T
("Type-Checking of " ^ (U.string_of_uri uri) ^ " started"))))
| `Type_checking_completed uri ->
- HelmLogger.log (`Msg (`DIV (1, Some "green", `T
+ HelmLogger.log (`Msg (`DIV (level, Some "green", `T
("Type-Checking of " ^ (U.string_of_uri uri) ^ " completed"))))
| `Trusting uri ->
- HelmLogger.log (`Msg (`DIV (1, Some "blue", `T
+ HelmLogger.log (`Msg (`DIV (level, Some "blue", `T
((U.string_of_uri uri) ^ " is trusted."))))
+class logger =
+ object
+ val mutable level = 0 (* indentation level *)
+ method log (msg: msg) =
+ match msg with
+ | `Start_type_checking _ ->
+ level <- level + 1;
+ log ~level msg
+ | `Type_checking_completed _ ->
+ log ~level msg;
+ level <- level - 1;
+ | _ -> log ~level msg
+ end
+
+let log msg = log ~level:1 msg
+