You can monitor outgoing PRIVMSG/NOTICE/etc without rewriting all the aliases or using ON INPUT by using /debug with the '-i' switch outputting to a hidden custom window or to the nul device (if Khaled added support for that again, I don't remember). Either way, you can just monitor all lines for PRIVMSG, NOTICE, etc., and log it as necessary.

Just make sure your alias is very efficient because it will be called for every single line sent to or received from the server.