As always, Boost proposes a full-flesh library: Boost.Logging
-> It allows runtime configuration, so you could plug a CLI on it.
But as usual, there is neither a GUI nor a CLI to begin with.
Note that the GUI bit is a bit more difficult to achieve. We have one at work (as well as our own logging framework), but of course they are proprietary so I won't be able to give you any code.
I can tell though (safely I think) that the GUI think is nothing more than a log parser. Since all application log with the same format, the GUI parses the necessary log files when you request it.
I know an intern worked on exploiting the logs: basically parsing and then structure them in a DB with some 'tag' indexing, but I haven't heard about it officially so I fear it went to the trash bin as soon as the internship ended. Too bad because the ability to index messages given a predefined set of tags was really helpful when you are looking for a particular log...