LSST Applications g0265f82a02+0e5473021a,g02d81e74bb+0dd8ce4237,g1470d8bcf6+3ea6592b6f,g2079a07aa2+86d27d4dc4,g2305ad1205+5ca4c0b359,g295015adf3+d10818ec9d,g2a9a014e59+6f9be1b9cd,g2bbee38e9b+0e5473021a,g337abbeb29+0e5473021a,g3ddfee87b4+703ba97ebf,g487adcacf7+4fa16da234,g50ff169b8f+96c6868917,g52b1c1532d+585e252eca,g591dd9f2cf+ffa42b374e,g5a732f18d5+53520f316c,g64a986408d+0dd8ce4237,g858d7b2824+0dd8ce4237,g8a8a8dda67+585e252eca,g99cad8db69+d39438377f,g9ddcbc5298+9a081db1e4,ga1e77700b3+15fc3df1f7,ga8c6da7877+f1d96605c8,gb0e22166c9+60f28cb32d,gb6a65358fc+0e5473021a,gba4ed39666+c2a2e4ac27,gbb8dafda3b+e5339d463f,gc120e1dc64+da31e9920e,gc28159a63d+0e5473021a,gcf0d15dbbd+703ba97ebf,gdaeeff99f8+f9a426f77a,ge6526c86ff+889fc9d533,ge79ae78c31+0e5473021a,gee10cc3b42+585e252eca,gf18bd8381d+7268b93478,gff1a9f87cc+0dd8ce4237,w.2024.16
LSST Data Management Base Package
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


Detailed Description

Handler for Python logging module that emits to LSST logging.

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

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

Constructor & Destructor Documentation

◆ __init__()

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

Definition at line 434 of file

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")

Member Function Documentation

◆ emit()

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

Definition at line 445 of file

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.
450 # Work out whether any other handler is going to be invoked
451 # for this logger.
452 pylgr = logging.getLogger(
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
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
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
473 logger = Log.getLogger(
474 # Use standard formatting class to format message part of the record
475 message = self.formatter.format(record)
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

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

Member Data Documentation

◆ formatter


Definition at line 438 of file

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