val name: string
end
+let uid = ref None
+
module Debugger = functor(Brand: BRAND) -> struct
let output (f:string -> ?extra:string -> ('a, unit, string, unit) format4 -> 'a) fmt =
- let extra = Brand.name in
+ let extra =
+ match !uid with
+ | None -> Brand.name
+ | Some uid -> Printf.sprintf "%s|%s" uid Brand.name
+ in
f Brand.name ~extra fmt
let debug fmt = output Logs.debug fmt
| Some dbg -> dbg
)
in
+ (* register a unique id if we are using syslog *)
+ if String.startswith "syslog:" a then
+ Debug.uid := Some uuid;
+
Logs.set_default Log.Debug [ a ];
Logs.set_default Log.Info [ a ];
Logs.set_default Log.Warn [ a ];