nlog-targets-seq
nlog-targets-seq copied to clipboard
Enh: perfs, reliability and durability
I am very happy to see the structured efforts of NLog 4.5 finally coming to fruition and a "real" Seq target! :tada: :heart:
Because this target sends logs over the network, it is important that:
- Logs are batched to minimize network round-trips;
- Unavailable network or other failures don't prevent the app from working thanks to buffering;
- In case of errors, a "safe" retry policy is in place (e.g. circuit breaker, expo. back-off);
- There is an option for durability: buffered message are sync. flushed to disk until their are sent.
For the last bullet, it is important that messages be human-readable (not necessarily "nice", their json payload would be acceptable). Lack of this feature would mean having a second file target beside the seq target. It would absolutely work but it would be a waste of resources since a lot of work would be duplicated for no reason.
Thanks for dropping by, @jods4! Time has been a little short lately, but I'm looking forward to circling back and finishing this up for the (I guess impending) NLog 4.5 release :-)
I think we should be able to port a lot of the code from https://github.com/serilog/serilog-sinks-seq to cover all of these points. Any and all help appreciated, for anyone out there with the inclination.