_____________________________________________
From: Leo Carreon
[
mailto:lcarreon@bigpond.net.au]
Sent: 15 July 2013 10:03
To:
boost-users@lists.boost.org
Subject: Re: [Boost-users] [Boost.Log]
More queries
Sent: Monday, July 15, 2013 6:06
PM
Subject: Re: [Boost-users] [Boost.Log] More
queries
_____________________________________________
From: Leo Carreon
[
mailto:lcarreon@bigpond.net.au]
Sent: 14
July 2013 04:04
To: Boost Users Mailing List
Subject: Re:
[Boost-users] [Boost.Log] More queries
Sent: Saturday, July 13, 2013 3:51
PM
Subject: [Boost.Log] More
queries
Hi everyone,
As I have mentioned in a previous post, I have been trying
to learn how to use Boost.Log.
I have been experimenting with logging to a file with
filtering and specifying the log formatting in three different ways,
namely:
1. Specifying the log formatting using a lambda type
expression.
2. Specifying the log formatting using a plain text string
with placeholders for the attributes that I have defined.
3. Specifying the log formatting in a settings file.
(However, the formatting string is exactly the same as in 2 above.)
I have attached a copy of my source code and settings
file. Note that I comment out parts of the source code file depending on
which option I use above.
The problem I’m encountering is when I use options 2 &
3 above, the severity level string does not appear in the log.
But if I use option 1, the severity level string appears
as expected. It is my understanding that severity level is a pre-defined
attribute when using a severity_logger.
Am I missing something when using options 2 &
3?
If I decide to use my own severity level enumeration, what
do I need to do?
Kind
regards,
Leo
Hi again everyone,
I have managed to use my own severity level enumeration
but the severity level string is still not appearing in the log.
Regards again,
Leo
Hi
Leo,
Again
I'm basing this on how it used to work in Logutils 1.1, so apologies if this is
out of date.
Try
defining a function like the following:
std::ostream& operator<< (std::ostream&
Stream, MySeverityLevelEnum Level)
{
switch(Level)
{
case
notice:
Stream << "notice";
break;
case
debug:
Stream << "debug";
break;
}
return Stream;
}
So
long as this function is visible to Boost.Log it will use
it.
Hi Colin,
First of all, thank you for your reply.
However, I already have a similar function.
Actually, I’m following the example shown in the documentation under “Detailed
Features Description – Lambda Expressions” but it does seem to have the right
effect.
Regards,
Leo
Okay - apologies, I didn't
actually look at your test code. You may be going more advanced that I did when
I played with it.
Looking at my old code the
only other things I appear to be doing to set up Severity Level is the following
function calls:
boost::log::add_common_attributes(); //not sure if this
one is necessary for you
boost::log::register_simple_formatter_factory<MySeverityLevelEnum>("Severity");
//might help
They might be worth a try -
if not, I'm afraid you're into an area I haven't yet played with
:)
Cheers
Colin
Hi
Colin,
Thanks for attempting to
give me a hand on this issue.
I tried calling
boost::log::register_simple_formatter_factory<>() and it still doesn’t
have any effect.
I believe I really need
Andrey’s assistance on this one.
Regards,
Leo
________________________________