Boost.Log can be a bit overwhelming at first glance. The short version is:
1) Every log record is associated with a set of attributes. The logged message is one of the attributes.
2) A logger object (called a "source" in the docs) can be configured to attach more attributes to records logged through it.
3) A "sink" can be configured to accept records with specified attribute conditions. Sinks define logging outputs----files, syslog, QTextEdits, etc.
4) Sinks are divided into frontends and backends. The main point of the frontend is to provide thread safety for the backend, and generally all you need to do is decide if you need thread safety, and if you want to achieve it by locking (synchronous_sink) or by running the backend in a background thread (asynchronous_sink). The backend is where the actual stuff happens, and you would need to write a custom one for a QTextEdit.
You'll also need to read up on filters and formatters, which are remarkably easy to specify but might take a few minutes to get your head around. Filters determine which records are sent to a given sink, and formatters convert the set of attributes in the record into a string for output.