Skip to content

Commit

Permalink
Replace getPluginLogName with log.getChild
Browse files Browse the repository at this point in the history
Use the logging system itself to determine the child logger.
  • Loading branch information
timj committed Jul 9, 2021
1 parent 9d34600 commit a8f7f7b
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 17 deletions.
13 changes: 5 additions & 8 deletions python/lsst/meas/base/baseMeasurement.py
Original file line number Diff line number Diff line change
Expand Up @@ -236,9 +236,6 @@ def __init__(self, algMetadata=None, **kwds):
algMetadata = lsst.daf.base.PropertyList()
self.algMetadata = algMetadata

def getPluginLogName(self, pluginName):
return self.log.getName() + '.' + pluginName

def initializePlugins(self, **kwds):
"""Initialize plugins (and slots) according to configuration.
Expand Down Expand Up @@ -271,7 +268,7 @@ def initializePlugins(self, **kwds):
# The task will use this name to log plugin errors, regardless.
if hasattr(PluginClass, "hasLogName") and PluginClass.hasLogName:
self.plugins[name] = PluginClass(config, name, metadata=self.algMetadata,
logName=self.getPluginLogName(name), **kwds)
logName=self.log.getChild(name).getName(), **kwds)
else:
self.plugins[name] = PluginClass(config, name, metadata=self.algMetadata, **kwds)

Expand Down Expand Up @@ -362,12 +359,12 @@ def doMeasurement(self, plugin, measRecord, *args, **kwds):
except FATAL_EXCEPTIONS:
raise
except MeasurementError as error:
lsst.log.Log.getLogger(self.getPluginLogName(plugin.name)).debug(
self.log.getChild(plugin.name).debug(
"MeasurementError in %s.measure on record %s: %s",
plugin.name, measRecord.getId(), error)
plugin.fail(measRecord, error)
except Exception as error:
lsst.log.Log.getLogger(self.getPluginLogName(plugin.name)).debug(
self.log.getChild(plugin.name).debug(
"Exception in %s.measure on record %s: %s",
plugin.name, measRecord.getId(), error)
plugin.fail(measRecord)
Expand Down Expand Up @@ -449,13 +446,13 @@ def doMeasurementN(self, plugin, measCat, *args, **kwds):

except MeasurementError as error:
for measRecord in measCat:
lsst.log.Log.getLogger(self.getPluginLogName(plugin.name)).debug(
self.log.getChild(plugin.name).debug(
"MeasurementError in %s.measureN on records %s-%s: %s",
plugin.name, measCat[0].getId(), measCat[-1].getId(), error)
plugin.fail(measRecord, error)
except Exception as error:
for measRecord in measCat:
plugin.fail(measRecord)
lsst.log.Log.getLogger(self.getPluginLogName(plugin.name)).debug(
self.log.getChild(plugin.name).debug(
"Exception in %s.measureN on records %s-%s: %s",
plugin.name, measCat[0].getId(), measCat[-1].getId(), error)
18 changes: 9 additions & 9 deletions tests/test_PluginLogs.py
Original file line number Diff line number Diff line change
Expand Up @@ -146,7 +146,7 @@ def testSingleFramePlugins(self):
for pluginName in dependencies:
plugin = task.plugins[pluginName]
if hasattr(plugin, "hasLogName") and plugin.hasLogName:
self.assertEqual(plugin.getLogName(), task.getPluginLogName(pluginName))
self.assertEqual(plugin.getLogName(), task.log.getChild(pluginName).getName())
# if the plugin is cpp, check the cpp Algorithm as well
if hasattr(plugin, "cpp"):
self.assertEqual(plugin.cpp.getLogName(), plugin.getLogName())
Expand Down Expand Up @@ -178,7 +178,7 @@ def testForcedPlugins(self):
for pluginName in dependencies:
plugin = task.plugins[pluginName]
if hasattr(plugin, "hasLogName") and plugin.hasLogName:
self.assertEqual(plugin.getLogName(), task.getPluginLogName(pluginName))
self.assertEqual(plugin.getLogName(), task.log.getChild(pluginName).getName())
# if the plugin is cpp, check the cpp Algorithm as well
if hasattr(plugin, "cpp"):
self.assertEqual(plugin.cpp.getLogName(), task.log.getName() + "." + pluginName)
Expand Down Expand Up @@ -214,8 +214,8 @@ def testLoggingPythonPlugin(self):
self.config.plugins = [algName]
task = lsst.meas.base.SingleFrameMeasurementTask(schema=schema, config=self.config)
# test that the plugin's logName has been propagated to the plugin
self.assertTrue(task.plugins[algName].getLogName(), task.getPluginLogName(algName))
log = lsst.log.Log.getLogger(task.getPluginLogName(algName))
self.assertEqual(task.plugins[algName].getLogName(), task.log.getChild(algName).getName())
log = task.log.getChild(algName)
with lsst.utils.tests.getTempFilePath(".log") as pluginLogName:
directLog(log, pluginLogName)
exposure, cat = self.dataset.realize(noise=0.0, schema=schema, randomSeed=2)
Expand All @@ -235,12 +235,12 @@ def testLoggingCppPlugin(self):

schema = self.dataset.makeMinimalSchema()
task = lsst.meas.base.SingleFrameMeasurementTask(schema=schema, config=self.config)
log = lsst.log.Log.getLogger(task.getPluginLogName(algName))
log = task.log.getChild(algName)
log.setLevel(lsst.log.ERROR)

# test that the plugin's logName has been propagated to the plugin
self.assertTrue(task.plugins[algName].getLogName(), task.getPluginLogName(algName))
self.assertTrue(task.plugins[algName].cpp.getLogName(), task.getPluginLogName(algName))
self.assertEqual(task.plugins[algName].getLogName(), task.log.getChild(algName).getName())
self.assertEqual(task.plugins[algName].cpp.getLogName(), task.log.getChild(algName).getName())
with lsst.utils.tests.getTempFilePath(".log") as pluginLogName:
directLog(log, pluginLogName)
exposure, cat = self.dataset.realize(noise=0.0, schema=schema, randomSeed=3)
Expand Down Expand Up @@ -269,7 +269,7 @@ def setUp(self):
self.dataset = lsst.meas.base.tests.TestDataset(self.bbox)
self.dataset.addSource(1000000.0, self.center)
self.task = self.makeSingleFrameMeasurementTask("base_SdssCentroid")
self.log = lsst.log.Log.getLogger(self.task.getPluginLogName("base_SdssCentroid"))
self.log = self.task.log.getChild("base_SdssCentroid")
self.exposure, self.catalog = self.dataset.realize(10.0, self.task.schema, randomSeed=4)

def tearDown(self):
Expand Down Expand Up @@ -328,7 +328,7 @@ def setUp(self):
self.dataset = lsst.meas.base.tests.TestDataset(self.bbox)
self.dataset.addSource(1000000.0, self.center)
self.task = self.makeForcedMeasurementTask("base_SdssCentroid")
self.log = lsst.log.Log.getLogger(self.task.getPluginLogName("base_SdssCentroid"))
self.log = self.task.log.getChild("base_SdssCentroid")
measWcs = self.dataset.makePerturbedWcs(self.dataset.exposure.getWcs(), randomSeed=5)
measDataset = self.dataset.transform(measWcs)
self.exposure, truthCatalog = measDataset.realize(10.0, measDataset.makeMinimalSchema(), randomSeed=5)
Expand Down

0 comments on commit a8f7f7b

Please sign in to comment.