Changes to log levels in butler/pipetask/bps commands

Yesterday I changed the way that log levels are handled in the butler, pipetask, and bps command-line tooling.

Previously the default was for the root logger to be set to INFO. This led to the confusing log messages coming from numexpr.utils (caused by importing pandas) and (caused by asking the conda system which packages were installed) when running pipetask.

Now what happens is that only the lsst loggers are set to INFO and all other loggers remain at WARNING (so the numexpr message will no longer appear). Additionally, --log-level DEBUG will now only set the lsst loggers to DEBUG and will not affect other loggers (so you will not be swamped by matplotlib or sqlalchemy log output). If you want to set the root logger you have to use a special logger name of “.”: --log-level .=INFO. Because the system now always forces the lsst logger to INFO in order to enable all loggers to be DEBUG you will need to say --log-level DEBUG --log-level .=DEBUG.

If you wish to treat additional loggers in the same manner as the root lsst logger without having to use the command line you can set the environment variable $DAF_BUTLER_ROOT_LOGGER to a colon-separated list of loggers.

The documentation has been updated with this information.

Should we have a link from the dev guide section on logging to this daf_butler logging page? I didn’t even know the latter existed: I always go to the dev guide for logging questions.

It was new last night. I had forgotten about the dev guide discussion and wanted to write something alongside the code that implemented it. It needs some thought.