Contrary to the (minimal) documentation, LOG("foo") << "bar" will not send a message to facility 'foo'; the dispatching LOG macro will expand into an expression that will not compile.
Use an overloaded function to disambiguate between LOG(n) for an integer log level n, referring to the default log facility, and LOG(fac) for a facility fac referenced by const char* name or object, which should log a record with implicit level zero.