Personally I just keep the raw logs and if I want something, I grep for it (or zgrep, or bzgrep, if the logs have been rotated/archived) :-)
I realize that's not ideal for most people, but I rarely have to go back to old logs, it's just nice to have them handy.
To do some of what you want requires a system like Splunk that would put the logs into a database and give you a nice GUI to wrap them up in. If others have suggestions for similar (hopefully free) products it would be nice to know.
We are working on a central management system for pfSense that will include central logging functions, but that will not be a free product when it happens