mirror of
https://github.com/mailscope/kumomta.git
synced 2026-10-22 06:22:26 +00:00
This commit adjusts the logger: * When a log segment is finised, the `w` permission bits are removed. This is used to signal to the tailer that there will be no additional data written to that file. * On startup, kumod will remove the `w` bits from all files in the configured log directories so that any that were left on by a prior incarnation will be considered closed when the new generation is started up. * Add a `tailer` utility that will essentially `cat` all of the log files in a given directory in the appropriate order, then go into log tailing mode, where it will wait for new data to show up. * When reading data, if it hits EOF, the tailer will wait around until more data shows up, or until the `w` bit is removed from the file that it is reading. The idea is that, in a later commit, the tailer will be able to persist a checkpoint file to record where it got to, and be able to dispatch chunks of data to eg: a webhook push utility, advancing the checkpoint only when the utility indicates success. For now, running `cargo run -p tailer -- --tail /var/tmp/kumo-logs` is a convenient way to tail the logs as they are written.