If you don't flush every line, you'll lose lines in a crash. You often need those lines when trying to debug such a problem, so that's the worst possible time to lose said lines.
We added tagged logging to deal with the "not in order" problem. Find the process id of the request you're trying to follow, grep for that.
Both problems solved.