From 0354a7c21cae08cda07864dcb70a76d37fe43375 Mon Sep 17 00:00:00 2001 From: Estevan Castilho Date: Thu, 8 Oct 2026 00:54:55 +0000 Subject: Log whenever managed objects are garbage collected --- lib/Logger.ml | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 lib/Logger.ml (limited to 'lib/Logger.ml') diff --git a/lib/Logger.ml b/lib/Logger.ml new file mode 100644 index 0000000..ebb6c97 --- /dev/null +++ b/lib/Logger.ml @@ -0,0 +1,29 @@ +type level = Debug | Info | Warn | Error | Fatal + +type colors = Foreground | Blue | Yellow | Red | Purple + +let reset = "\027[0m" +let bold = "\027[1m" + +let color_for = function + | Foreground -> "\027[39m" + | Blue -> "\027[34m" + | Yellow -> "\027[33m" + | Red -> "\027[31m" + | Purple -> "\027[35m" + +let colored color text = Printf.sprintf "%s%s%s%s" (color_for color) bold text reset + +let channel_for = function + | Warn | Error | Fatal -> stderr + | _ -> stdout + +let prefix_for = function + | Debug -> colored Foreground "[DEBUG]" + | Info -> colored Blue "[INFO]" + | Warn -> colored Yellow "[WARN]" + | Error -> colored Red "[ERROR]" + | Fatal -> colored Purple "[FATAL]" + +let log level message = + Printf.fprintf (channel_for level) "%s %s\n" (prefix_for level) message -- cgit v1.2.3