holm log.
Where it lives
The log is split into numbered files in the config directory:0600), like config.json and the policy files. Files
are never renamed — rotating just starts writing the next number — so a reader
tailing one is never pulled out from under it.
Record format
One JSON object per line (JSON Lines), oldest first, so the log streams intojq or a log shipper without a parser:
decision separates policy from infrastructure: denied means
Steerholm refused the call, error means it could not be carried out — the
server was down, unreachable, or failed. Filtering for refusals means
--status denied, not both.Retention
Old files are deleted, so the log does not grow without bound. Two limits apply, and a file goes when it passes either:
The file count bounds disk use; the age sets how long history is kept. With the
defaults that is a 50 MB ceiling and no time limit — so on a busy install the
oldest entries are dropped once the ceiling is reached.
Age is taken from the timestamps inside the files, not their modification
time. Restoring a backup with
tar -x or rsync -a preserves old modification
times and would otherwise delete a restored audit trail; copying with cp -r
resets them and would keep it for ever.fsynced, so an abrupt power loss can
lose the most recent lines.