Dear Robin,
since you mention my logs-syslog package here, let me answer you .
- Lwt_logs now moved to a separate repository (see Lwt_log: how can we use it? · Issue #468 · ocsigen/lwt · GitHub and attempt to move lwt.log into separate lwt_log by hannesm · Pull Request #484 · ocsigen/lwt · GitHub). NB: I never used Lwt_logs and can’t answer your initial question about syslog support.
- logs-syslog “depends on lot of external libraries”: my perception is different, it requires
ocamlfind
,ocamlbuild
, andtopkg
for building, pluslogs
,ptime
, andsyslog-message
(which itself depends additionally onastring
) at runtime.
The logs library is very convenient to use IMHO, and has builtin support for both terminal, but also browser console (when cross-compiling to JS). I wrote logs-syslog to solve the exact problem - exfiltrating log messages via syslog - once logs was adopted more widely (at least by the MirageOS community, see Announcing MirageOS 3.0.0 | MirageOS). Others (at Docker) wrote reporters for both Apply system log and Windows event log.
The syslog-message library does not yet support structured syslog (RFC 5424), apart from that the logs-syslog library supports three transports, UDP, TCP, TLS (including client authentication) - and 3 backends: Unix (OCaml stdlib), Lwt, MirageOS. Please let me know if you have a specific use case not covered by logs-syslog. Further reading about the MirageOS syslog integration is available at Exfiltrating log data using syslog