The way current console logs are written, it is kinda easy to fool the log parsers.
With current system, you can actually get caps, joins, disconnects, leaves for yourself, just by talking. This is why for example, Zitro-Stats do not have CTF stats.
So, I suggest that the way logs are written will be changed a little.
Current way:
06-12-18 22:37:31 NF|Clawbug has joined bravo team
06-12-18 22:45:06 (TEAM)[NF|sYn4t!Ck] -! Fag with flag escaping: UP !-
06-12-18 22:45:15 =SF=|WsJoke [CH] scores for Bravo Team
06-12-18 22:45:30 (TEAM)[NF|sYn4t!Ck] -! Enemy incoming: MID !-
06-12-18 22:45:33 =SF=|WsJoke [CH] captured the Red Flag
06-12-18 22:45:37 NF|sYn4t!Ck returned the Red Flag
Modified way:
06-12-18 22:37:31 Join bravo team: NF|Clawbug
06-12-18 22:45:06 Teamchat: [NF|sYn4t!Ck] -! Fag with flag escaping: UP !-
06-12-18 22:45:15 Bravo team scoring: =SF=|WsJoke [CH]
06-12-18 22:45:30 Teamchat: [NF|sYn4t!Ck] -! Enemy incoming: MID !-
06-12-18 22:45:33 Red flag capture: =SF=|WsJoke [CH]
06-12-18 22:45:37 Red flag return: NF|sYn4t!Ck
So, putting the lines after the nick to before the nick could do the trick better, IMO.
Tho, this is the consolelog file, and there is written what we see in the console. So, there could be alternative file for events like this aswell.
Third option woulc be to write some simple server script.