There are a lot of good (accepted answer quality) answers already, I'm just adding one point that should be considered:
If you're running low on disk space, or you just don't want to waste 16GB on a flat file after 5 years of recording logs, would you prefer to just issue a "DELETE FROM Logs WHERE Date < x" that can run concurrently with no downtime, or would you prefer to have to offline your application while you trim 16GB worth of lines from the top of your text file (you bet that's going to lock the file).
There is a big difference between "it's not too fast" and "it's not running at all".
Edit: In response to your edit, if you plan on throwing away the data once processed, wouldn't it be easier to clip data from a database (DELETE) then a flat file (unless you start using fixed line sizes and impliment your own block allocation scheme, at which point you've just start implimenting a poor mans database)