Skip to content

Commit

Permalink
Add unit test for PyLogAppender
Browse files Browse the repository at this point in the history
  • Loading branch information
andy-slac committed Jul 6, 2021
1 parent 6598c04 commit e4d811e
Showing 1 changed file with 37 additions and 0 deletions.
37 changes: 37 additions & 0 deletions tests/test_log.py
Original file line number Diff line number Diff line change
Expand Up @@ -571,6 +571,43 @@ def testForwardToPythonContextManager(self):
# Verify that forwarding is disabled
self.assertFalse(log.Log.UsePythonLogging)

def testForwardToPython(self):
"""Test that `log4cxx` appender forwards it all to logging"""
self.configure("""
log4j.rootLogger=DEBUG, PyLog
log4j.appender.PyLog = org.apache.log4j.PyLogAppender
""")
with self.assertLogs(level="WARNING") as cm:
log.warn("lsst.log: forwarded")
logging.warning("Python logging: also captured")
self.assertEqual(len(cm.output), 2)

# check that MDC is stored in LogRecord
log.MDC("LABEL", "some.task")
with self.assertLogs(level="WARNING") as cm:
log.warn("lsst.log: forwarded")
log.MDCRemove("LABEL")
self.assertEqual(len(cm.records), 1)
self.assertEqual(cm.records[0].LABEL, "some.task")
self.assertEqual(cm.records[0].msg, "lsst.log: forwarded")

def testForwardToPythonWithMDC(self):
"""Test that `log4cxx` appender forwards it all to logging and modifies
message with MDC info"""
self.configure("""
log4j.rootLogger=DEBUG, PyLog
log4j.appender.PyLog = org.apache.log4j.PyLogAppender
log4j.appender.PyLog.layout = PatternLayout
log4j.appender.PyLog.layout.ConversionPattern = %m (LABEL=%X{{LABEL}})
""")
log.MDC("LABEL", "some.task")
with self.assertLogs(level="WARNING") as cm:
log.warn("lsst.log: forwarded")
log.MDCRemove("LABEL")
self.assertEqual(len(cm.records), 1)
self.assertEqual(cm.records[0].LABEL, "some.task")
self.assertEqual(cm.records[0].msg, "lsst.log: forwarded (LABEL=some.task)")

def testLevelTranslator(self):
"""Test LevelTranslator class
"""
Expand Down

0 comments on commit e4d811e

Please sign in to comment.