You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@qpid.apache.org by Alan Conway <ac...@redhat.com> on 2008/10/16 23:23:04 UTC

RE: C++ - Question on how to handle logging options forLinux/Windows

On Tue, 2008-10-14 at 20:04 -0400, Steve Huston wrote:
> Hi Alan,
> 
> > > A like the plugin sort of idea, but I can't justify the 
> > effort at this
> > > point getting ready for M4. I am going to move the 
> > --log-output to the
> > > platform-specific options. We can revisit this at a later point if
> > > there's further interest or problems.
> > 
> > I like the plugin idea too, and in retrospect I think Andrew's right
> > about --log-output being an unfortunate mix. I'd suggest 
> > something like
> > this: drop --log-output and have sink-specific options like
> >  --log-to-stderr yes|no
> >  --log-to-file <filename>
> >  --log-to-syslog yes|no
> >    ( and related --syslog options)
> >  --log-to-eventlog (eventlog parameters?)
> >    (and related --eventlog options)
> 
> Ok, that makes sense... And with two more-senior folks advocating, I'm
> convinced.
> 
> > Sinks with simple config like file or stderr can be completely
> > configured with a single option. More complicated sinks like
> > syslog/eventlog can have additional configuration options.
> > Everything related to a given type of sink can be included/excluded
> by
> > including/excluding options, not need to additionally manage the
> > behavior of a "shared" option like --log-output.
> > 
> > Steve, I'm OK with you going around the problem for now by making
> > --log-output system specific, but could you raise a JIRA based on
> this
> > discussion so we don't lose the good intention to refactor? 
> > Making this
> > pluggable will be straightforward once we've reorganized
> sink-related
> > options into dijoint sets.
> 
> Ok, here's how it will look when I check these in:
> 
>  ./qpidd --help
> Usage: qpidd [OPTIONS]
> 
> <all non-logging output is the same, so not included here>
> 
> Logging options:
>   -t [ --trace ]                          Enables all logging
>   --log-enable RULE (error+)              Enables logging for selected
> levels
>                                           and components. RULE is in
> the form
>                                           'LEVEL[+][:PATTERN]' Levels
> are one
>                                           of:
>                                            trace debug info notice
> warning
>                                           error critical
>                                           For example:
>                                           '--log-enable warning+' logs
> all
>                                           warning, error and critical
> messages.
>                                           '--log-enable debug:framing'
> logs
>                                           debug messages from the
> framing
>                                           namespace. This option can
> be used
>                                           multiple times
>   --log-time yes|no (1)                   Include time in log messages
>   --log-level yes|no (1)                  Include severity level in
> log
>                                           messages
>   --log-source yes|no (0)                 Include source file:line in
> log
>                                           messages
>   --log-thread yes|no (0)                 Include thread ID in log
> messages
>   --log-function yes|no (0)               Include function signature
> in log
>                                           messages
>   --log-prefix STRING                     Prefix to append to all log
> messages
> 
> Logging sink options:
>   --log-to-stderr yes|no (1)              Send logging output to
> stderr
>   --log-to-stdout yes|no (0)              Send logging output to
> stdout
>   --log-to-file FILE                      Send log output to FILE.
>   --log-to-syslog yes|no (0)              Send logging output to
> syslog;
>                                           customize using
> --syslog-name and
>                                           --syslog-facility
>   --syslog-name NAME (lt-qpidd)           Name to use in syslog
> messages
>   --syslog-facility LOG_XXX (LOG_DAEMON)  Facility to use in syslog
> messages
> 
> 
> On Windows, the logging sink options will be different.
> 
> I'm going to go with this unless there are screams of outrage.
> 
> Thanks for your input... I really appreciate having more experienced
> folks review things.
> 
> -Steve
> 

That sounds spot-on to me.