- by default, there is nothing you can make with syslog-ng alone that will not lose data during a network or endpoint outage.I use rsyslog on clients and relays with TCP disk buffering including relays. Properly measured you should know when you are buffering.
- transporting metadata can tell you which file the data is from, but not where in the file it's from, so you can't really tell if you have duplicate data, or missed data. (The inode number might be handy too)
- behaviour around input file truncation is fuzzy. That a truncation has occured might be useful metadata to send (if you're looking for people fiddling logs).
Any mature log reader should handle those use cases, if you have no control over the rotation is it possible to load the data after rotation? Logrotated has pre and post rotation functions.
- It doesn't seem to be able to encode binary/NULs in the logs, so it cannot relay data from 'untrusted' application logs?
- Not sure what it does with very long lines. Loses data?
Have not seen those cases.
Hope it help a little.
Scot