xlog/README.md

69 lines
1.2 KiB
Markdown

# 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
```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
```