(root)/
Python-3.12.0/
PC/
layout/
support/
logging.py
       1  """
       2  Logging support for make_layout.
       3  """
       4  
       5  __author__ = "Steve Dower <steve.dower@python.org>"
       6  __version__ = "3.8"
       7  
       8  import logging
       9  import sys
      10  
      11  __all__ = []
      12  
      13  LOG = None
      14  HAS_ERROR = False
      15  
      16  
      17  def public(f):
      18      __all__.append(f.__name__)
      19      return f
      20  
      21  
      22  @public
      23  def configure_logger(ns):
      24      global LOG
      25      if LOG:
      26          return
      27  
      28      LOG = logging.getLogger("make_layout")
      29      LOG.level = logging.DEBUG
      30  
      31      if ns.v:
      32          s_level = max(logging.ERROR - ns.v * 10, logging.DEBUG)
      33          f_level = max(logging.WARNING - ns.v * 10, logging.DEBUG)
      34      else:
      35          s_level = logging.ERROR
      36          f_level = logging.INFO
      37  
      38      handler = logging.StreamHandler(sys.stdout)
      39      handler.setFormatter(logging.Formatter("{levelname:8s} {message}", style="{"))
      40      handler.setLevel(s_level)
      41      LOG.addHandler(handler)
      42  
      43      if ns.log:
      44          handler = logging.FileHandler(ns.log, encoding="utf-8", delay=True)
      45          handler.setFormatter(
      46              logging.Formatter("[{asctime}]{levelname:8s}: {message}", style="{")
      47          )
      48          handler.setLevel(f_level)
      49          LOG.addHandler(handler)
      50  
      51  
      52  class ESC[4;38;5;81mBraceMessage:
      53      def __init__(self, fmt, *args, **kwargs):
      54          self.fmt = fmt
      55          self.args = args
      56          self.kwargs = kwargs
      57  
      58      def __str__(self):
      59          return self.fmt.format(*self.args, **self.kwargs)
      60  
      61  
      62  @public
      63  def log_debug(msg, *args, **kwargs):
      64      return LOG.debug(BraceMessage(msg, *args, **kwargs))
      65  
      66  
      67  @public
      68  def log_info(msg, *args, **kwargs):
      69      return LOG.info(BraceMessage(msg, *args, **kwargs))
      70  
      71  
      72  @public
      73  def log_warning(msg, *args, **kwargs):
      74      return LOG.warning(BraceMessage(msg, *args, **kwargs))
      75  
      76  
      77  @public
      78  def log_error(msg, *args, **kwargs):
      79      global HAS_ERROR
      80      HAS_ERROR = True
      81      return LOG.error(BraceMessage(msg, *args, **kwargs))
      82  
      83  
      84  @public
      85  def log_exception(msg, *args, **kwargs):
      86      global HAS_ERROR
      87      HAS_ERROR = True
      88      return LOG.exception(BraceMessage(msg, *args, **kwargs))
      89  
      90  
      91  @public
      92  def error_was_logged():
      93      return HAS_ERROR