# xlog logging library for cats written in ocaml original code (most of the code here) from: , which is released under LGPL-2.0-or-later. all modifications to the code in this repo are released under the same license ## usage ```ocaml include (val Xlog.logs __FUNCTION__) (* basic usage *) let () = info (fun m -> m "meow meow meow") (* add source location info *) let () = info ~__POS__ ~__FUNCTION__ (fun m -> m "meow meow meow") (* log exception *) try fallible_task () with | e -> exn e (Printexc.get_raw_backtrace ()) ~__POS__ ~__FUNCTION__ (fun m -> m "encountered error") module Submodule = struct include (val Xlog.logs __FUNCTION__) (* ... *) end (* in the main module *) Xlog.init_pretty_writer stdout ~min_level:Xlog.DEBUG (* other options *) (* if running as a daemon *) if Xlog.should_upgrade_to_journald () then Xlog.init_journald_writer () ~min_level:Xlog.DEBUG else Xlog.init_pretty_writer stdout ~min_level:Xlog.DEBUG ``` ## usage with ppx ```ocaml [%%xlog_import] [%xlog info "log message %d" 1337] try fallible_task () with | e -> [%xlog exn e "oop's"] module Submodule = struct [%%xlog_import] let do_stuff () = [%xlog warn "meow"] end ```