Print

Print


K-T,

I forgot to mention that the issue is only with python-side
of things. We already adopted lsst logging in Qserv C++ world.

 > small Python-only
 > scripts that are not expected to produce production logs

I suspect Qserv does not fully fall into that category,
although our python scripts are not huge.

So... if we
  - use lsst logging in qserv-C++
  - use python logging in qserv-python and point it to
    lsst logging via config
  - use lsst logging in python db module (which is called
    from qserv, but only from qserv python admin scripts)

would that be reasonable?

Hmm, I think I heard sentiment within the group that admin
scripts would rather use standard logging, not lsst logging.

My feeling is that this is getting convoluted.

Jacek



On 03/03/2015 07:43 AM, Kian-Tat Lim wrote:
> Jacek,
>
>> We need to come back to the topic of logging. Andy (S) is telling
>> me that we recently decided to stick in Qserv with native python
>> log, and attach that log stream to the lsst logging. I do remember
>> we discussed this, but somehow it didn't fully occur to me that we
>> are not going to use our lsst logging in Qserv directly. Because...
>> if indeed that is the case, it does not make much sense to introduce
>> it in the "db" module (which I just did in DM-2137), which means
>> it does not make sense to use it in metaserv/imgserv/dbserv/webserv.
>>
>> So, I would like us to be completely clear about it before we
>> go that route. (I am not very comfortable with going that route).
>> And I want to make sure K-T is not going to shoot us when he
>> discovers our plans. :)
>
> 	C++ code needs to log via log4cxx.  Having C++ log via the
> Python logger is, as far as I know, 1) difficult and 2) impossible if
> C++ code is not called from Python, which may still occur at times.
>
> 	Python code can log via log4cxx using lsst.log.  It can also log
> via the Python library logger.  The library logger can be configured to
> output to log4cxx, but I think that generally requires two configuration
> files, which I have generally resisted; I'm not sure if it also requires
> an actual code change to import lsst.log.
>
> 	The compromise I had approved before was that small Python-only
> scripts that are not expected to produce production logs could use the
> Python library logger only.
>
> 	But logging in packages that are shared with the Science
> Pipelines portion of the Stack (like db or sphgeom) needs to take more
> care to be compatible with C++ and its usage.
>
> 	The requirements I have in mind are:
>
> 1) Minimize the number of places that logging configuration is stored.
> Even if logging users tend to be more sophisticated developers, I think
> having many configuration locations makes our system hard to use.
>
> 2) Generate log outputs that are consistent in terms of format and
> content.  Having non-ISO times (or no times at all), components in
> different orders, etc. makes interpretation hard.
>
> 3) Be able to configure logging at a fine grain (definitely package
> level; usually class level or even below).
>
> 4) Permit urgent log messages to be sent via DM Messages (currently
> known as ctrl_events).  This will allow rapid response to problems as
> opposed to waiting for log files to be collected.
>
> 5) Have the primary log output from a single "application" go to a
> single place.  I think it's a lot easier to debug if all the information
> is collected together and not scattered across multiple files.
>

########################################################################
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