Print

Print


Robert,

> There's no definition of "context" --- the first example uses the
> string 'czar' and I don't know how that's associated with a logger. If
> it needs to be created explicitly from a config file I think we have a
> problem.

	A context is just a way of creating a relative logger name that
is pushed/popped (with RAII now).  "czar" is just the addition to the
logger name path (i.e. default_path = default_path + ".czar").  This new
name can be used in the config file, but it is not created from the
config file.

> The performance of formatted output looks worrying.

	Bill is working on this for boost::format.  Do you find the
snprintf timings to be inadequate, too?

> We probably need to support boost::format too.

	So your desire is to either speed up boost::format to be as fast
as snprintf, or support both, right?

> > 	Having enough debug levels.  I'd like to have at least 3 and
> > 	maybe 5 different debug levels, and preferably control them by a
> > 	numerical parameter not a logger name (protolog.debug(3, ...)
> > 	rather than protolog.debug3(...)) to enable changing the level
> > 	of groups of debug commands. Yes, you can do this with  mylog =
> > 	{3: protolog.debug3);  mylog[3](...) but that's more work.
> 
> You provides only 2 by default, trace and debug (+ info + warn + error
> + fatal).  That's not enough.  There's some python to support other
> levels, but it's not standardized.

	The point is that you should think about your multiple levels
differently -- as multiple loggers rather than multiple levels.  Bill's
sample code just shows the isomorphism between the two, but I don't
think it's recommended that you actually use it.

> > 	output control.  It is convenient to make different debug levels format with different indents
> 
> Is this addressed?  It's not critical.

	No, it's not.  This would require hacking at something closer to
the log4cxx level, I think.

> > 	I think we need to be able to change logging levels from an
> > 	interactive python prompt.
> > 
> > 	This is probably supported, but with debug("afw.image", 1, ...)
> > 	debug("afw.image.fitsio", 2, ...) Can I enable afw debug logging
> > 	at level 1 (which applies to afw.image and afw.image.fitsio),
> > 	then switch afw.image to 2 (which also applies to
> > 	afw.image.fitsio), and then change afw.image.fitsio to yet
> > 	another log level?
> 
> Can you provide a complete example to illustrate this?

setLevel("afw.image", 1)
setLevel("afw.image", 2)
setLevel("afw.image.fitsio", 3)

> My impression is that the levels are handled per-logger, and thus per
> context (== logger?? See comment on contexts above).  Is that right?

	No, there's also inheritance in the tree (if Bill got this
right).

> If so, before I can control the debugging level for a given package I
> need to create a logger, and that requires an xml/log4j file which
> users will *not* want to do.

	No, you create a logger in the code.  The XML/log4j file
controls how that logger logs.

-- 
Kian-Tat Lim, LSST Data Management, [log in to unmask]

########################################################################
Use REPLY-ALL to reply to list

To unsubscribe from the QSERV-L list, click the following link:
https://listserv.slac.stanford.edu/cgi-bin/wa?SUBED1=QSERV-L&A=1