xenia 0eb9e97ac6 | ||
---|---|---|
lib | ||
ppx | ||
test | ||
.gitignore | ||
README.md | ||
dune-project | ||
package.nix | ||
xlog.opam |
README.md
xlog
logging library for cats written in ocaml
original code (most of the code here) from: https://git.lain.faith/iitalics/talircd, which is released under LGPL-2.0-or-later. all modifications to the code in this repo are released under the same license
usage
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
[%%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