Details
-
Type:
RFC
-
Status: Implemented
-
Resolution: Done
-
Component/s: DM
-
Labels:None
Description
The Task framework is an implementation of a fairly generic pipeline building block that has the possibility to be useful outside of the LSST pipeline software environment. One impediment to this is the dependency on lsst.log which requires a C++ compiler, depends on both utils and base packages and also uses the Log4CXX package. We propose that we switch the Task class (and pipe_base in general) to use the python logging package. This implies that we also change all python Task subclasses over to python logging.
To aid with the transition we will make an initial modification of Task to use a python logging subclass that implements compatibility methods (such as .getName() for .name and .trace() for .log(TRACE...)) which will start issuing deprecation messages. These can be fixed as related code is changed. Once we are confident that lsst.log is not in use in Tasks any more we can switch Task to using a standard python logger.
This builds on the decisions made in RFC-29 where it was agreed that pure-python packages can use python logging and are not required to use lsst.log.
Attachments
Issue Links
- is triggering
-
DM-30301 Switch Task to use python logging rather than lsst.log
- Done
- relates to
-
RFC-783 Replace Task metadata class with pure Python Mapping
- Implemented
-
RFC-789 Make lsst.log python interface more compatible with python logging
- Implemented
-
RFC-29 Standardize logging and remove pex_logging
- Implemented
What about Tasks that have a C++ component that uses lsst.log?