Boost logo

Boost Users :

Subject: [Boost-users] Boost.Log - textual format with severity
From: Keith Bennett (keithb_at_[hidden])
Date: 2014-05-12 12:04:20


Hello! I'm new to boost log (like many others, I imagine since it's only a
relatively new library).

I'm trying to specify a format textually (eg, keywords::format =
"blahblah", instead of using a compiled expression). The idea is that the
format can be reconfigured easily either through a command line parameter
or through the configuration file without needing to recompile.

However, it seems that anything specifying %Severity% when using a custom
severity_level enum will simply not be output at all.

Take the example from libs/log/example/keywords/main.cpp

Simply changing line 86 to be:
    logging::add_console_log(std::clog, keywords::format = "%Severity%
%TimeStamp%: %_%");

will exhibit the problem I believe I am trying to resolve.

My suspicion is that the core doesn't know about the custom Severity
attribute because it hasn't been registered and so is unable to parse
%Severity% to any formatter. In contrast, the add_file_log below that does
correctly output the severity level because it uses a compiled expression
and is therefore able to deduce what needs to be done (am I correct in that
assumption)?

I seem to be unable to add an attribute to resolve this without rolling my
own attribute class. How do I add an attribute or formatter related to the
Severity which was declared with BOOST_LOG_ATTRIBUTE_KEYWORD?

I think it's worth noting that if I remove the template parameter to
severity_logger on line 123 so that it matches thus:
    src::severity_logger< > slg;

It then devolves into a standard int instead of an enum and the output is
"correctly" seen -- as an int and not as a human-readable string. While
this is okay for now, I would of course want it to be human-readable if
possible. This is as it is in the example in
libs/log/example/settings_file/main.cpp.

Any help would be appreciated.

-- 
This message contains confidential information and is intended only for the 
individual named. If you are not the named addressee you should not 
disseminate, distribute or copy this e-mail. Please notify the sender 
immediately by e-mail if you have received this e-mail by mistake and 
delete this e-mail from your system. If you are not the intended recipient 
you are notified that disclosing, copying, distributing or taking any 
action in reliance on the contents of this information is strictly 
prohibited.


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net