Ah, attoparsec is such a nice package!
Some minor quibbles:
Why aren't you using the various combinators from Control.Applicative to build your parsers?
Could your log files possibly contain non-ascii characters? In that case, use the attoparsec module specialized for Data.Text values.