Log rotation is usually treated as a solved problem.
Write to app.log.
When it gets too large, or when the day changes, rename it to something else.
Then open a new app.log.
That model works well enough in many deployments. If it works for yours, I would not replace it just for the sake of replacing it.







