LSST Applications 24.1.5,g02d81e74bb+fa3a7a026e,g180d380827+a53a32eff8,g2079a07aa2+86d27d4dc4,g2305ad1205+c0501b3732,g295015adf3+7d3e92f0ec,g2bbee38e9b+0e5473021a,g337abbeb29+0e5473021a,g33d1c0ed96+0e5473021a,g3a166c0a6a+0e5473021a,g3ddfee87b4+5dd1654d75,g48712c4677+3bf1020dcb,g487adcacf7+065c13d9cf,g50ff169b8f+96c6868917,g52b1c1532d+585e252eca,g591dd9f2cf+d7ac436cfb,g5a732f18d5+53520f316c,g64a986408d+fa3a7a026e,g858d7b2824+fa3a7a026e,g8a8a8dda67+585e252eca,g99cad8db69+a5a909b84f,g9ddcbc5298+9a081db1e4,ga1e77700b3+15fc3df1f7,ga8c6da7877+4cf350ccb2,gb0e22166c9+60f28cb32d,gba4ed39666+c2a2e4ac27,gbb8dafda3b+f991a0b59f,gc120e1dc64+9ccbfdb8be,gc28159a63d+0e5473021a,gcf0d15dbbd+5dd1654d75,gd96a1ce819+42fd0ee607,gdaeeff99f8+f9a426f77a,ge6526c86ff+0d71447b4b,ge79ae78c31+0e5473021a,gee10cc3b42+585e252eca,gff1a9f87cc+fa3a7a026e
LSST Data Management Base Package
Loading...
Searching...
No Matches
Public Member Functions | Public Attributes | List of all members
lsst.log.log.logContinued.LogHandler Class Reference
Inheritance diagram for lsst.log.log.logContinued.LogHandler:

Public Member Functions

 __init__ (self, level=logging.NOTSET)
 
 handle (self, record)
 
 emit (self, record)
 

Public Attributes

 formatter
 

Detailed Description

Handler for Python logging module that emits to LSST logging.

Parameters
----------
level : `int`
    Level at which to set the this handler.

Notes
-----
If this handler is enabled and `lsst.log` has been configured to use
Python `logging`, the handler will do nothing itself if any other
handler has been registered with the Python logger.  If it does not
think that anything else is handling the message it will attempt to
send the message via a default `~logging.StreamHandler`.  The safest
approach is to configure the logger with an additional handler
(possibly the ROOT logger) if `lsst.log` is to be configured to use
Python logging.

Definition at line 414 of file logContinued.py.

Constructor & Destructor Documentation

◆ __init__()

lsst.log.log.logContinued.LogHandler.__init__ ( self,
level = logging.NOTSET )

Definition at line 434 of file logContinued.py.

434 def __init__(self, level=logging.NOTSET):
435 logging.Handler.__init__(self, level=level)
436 # Format as a simple message because lsst.log will format the
437 # message a second time.
438 self.formatter = logging.Formatter(fmt="%(message)s")
439

Member Function Documentation

◆ emit()

lsst.log.log.logContinued.LogHandler.emit ( self,
record )

Definition at line 445 of file logContinued.py.

445 def emit(self, record):
446 if Log.UsePythonLogging:
447 # Do not forward this message to lsst.log since this may cause
448 # a logging loop.
449
450 # Work out whether any other handler is going to be invoked
451 # for this logger.
452 pylgr = logging.getLogger(record.name)
453
454 # If another handler is registered that is not LogHandler
455 # we ignore this request
456 if any(not isinstance(h, self.__class__) for h in pylgr.handlers):
457 return
458
459 # If the parent has handlers and propagation is enabled
460 # we punt as well (and if a LogHandler is involved then we will
461 # ask the same question when we get to it).
462 if pylgr.parent and pylgr.parent.hasHandlers() and pylgr.propagate:
463 return
464
465 # Force this message to appear somewhere.
466 # If something else should happen then the caller should add a
467 # second Handler.
468 stream = logging.StreamHandler()
469 stream.setFormatter(logging.Formatter(fmt="%(name)s %(levelname)s (fallback): %(message)s"))
470 stream.handle(record)
471 return
472
473 logger = Log.getLogger(record.name)
474 # Use standard formatting class to format message part of the record
475 message = self.formatter.format(record)
476
477 logger.logMsg(LevelTranslator.logging2lsstLog(record.levelno),
478 record.filename, record.funcName,
479 record.lineno, message)

◆ handle()

lsst.log.log.logContinued.LogHandler.handle ( self,
record )

Definition at line 440 of file logContinued.py.

440 def handle(self, record):
441 logger = Log.getLogger(record.name)
442 if logger.isEnabledFor(LevelTranslator.logging2lsstLog(record.levelno)):
443 logging.Handler.handle(self, record)
444

Member Data Documentation

◆ formatter

lsst.log.log.logContinued.LogHandler.formatter

Definition at line 438 of file logContinued.py.


The documentation for this class was generated from the following file: