Well, the call to Flush does exactly what it says it will. Streams will buffer information for the sake of performance; more often than not, it's easier to get larger packets of bytes and then write that to the underlying resource (disk, network) than it is to perform a write to the underlying resource every time.
Calling Flush will ensure that whatever is buffered is written to the underlying resource.
If you are calling this after every write, you will probably see a decrease in performance, because you are making many little writes to what I assume is the disk. The benefit here is that it is more fault tolerant. If something crashes, your log will be as up to date as possible.
If you don't call Flush after every write to the log, then you run the risk of losing some of that information in the face of a fault.
Now, whether or not the tradeoff is necessarily a good one is up to you, you have to measure the impact of calling Flush either all the time, or at various other times, and whether or not it meets your risk and performance needs.