I'm having some trouble with attribute formatting in boost::log that I haven't managed to figure out on my own. The case seems basic: I want to format my own severity enum as a string, for which I've produced the following (failing) example. Tested on clang-3.3 and clang-3.4 with boost-1.54 from macports, the minimal failing test produces the following output:

    $ clang++ --std=c++11 -c -DBOOST_ALL_DYN_LINK -I/opt/local/include/boost fail.cxx 
    $ g++ -o fail -L/opt/local/lib -lboost_log-mt -lboost_log_setup-mt -lboost_system-mt -lboost_thread-mt fail.o 
    $ ./fail
    1: Booo!

I would have expected "INFO: Booo!" according to my code.

I've attached the complete fail.cxx here, in which I do all of:

 1) Employ BOOST_LOG_ATTRIBUTE_KEYWORD,
 2) Overload operator<< (std::ostream&, const my::severity&),
 3) Overload operator<< (logging::formatting_ostream&, const logging::to_log_manip<...>&), and
 4) Invoke register_simple_formatter_factory

I can't find any guidance in the documentation or elsewhere on the internet that has managed to solve this -- Am I missing something obvious, or have I found a failing test case?

--
Andres