logging library for cats written in ocaml
Go to file
xenia 9399b6858e move journald functionality out of this module 2024-09-24 01:16:18 -04:00
lib move journald functionality out of this module 2024-09-24 01:16:18 -04:00
ppx use ppx_unicode 2024-04-25 03:00:59 -04:00
test use ppx_unicode 2024-04-25 03:00:59 -04:00
.gitignore use ppx_unicode 2024-04-25 03:00:59 -04:00
README.md move journald functionality out of this module 2024-09-24 01:16:18 -04:00
dune-project move journald functionality out of this module 2024-09-24 01:16:18 -04:00
package.nix move journald functionality out of this module 2024-09-24 01:16:18 -04:00
xlog.opam move journald functionality out of this module 2024-09-24 01:16:18 -04:00

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 *)

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