17db96d56Sopenharmony_ci""" 27db96d56Sopenharmony_ciLogging support for make_layout. 37db96d56Sopenharmony_ci""" 47db96d56Sopenharmony_ci 57db96d56Sopenharmony_ci__author__ = "Steve Dower <steve.dower@python.org>" 67db96d56Sopenharmony_ci__version__ = "3.8" 77db96d56Sopenharmony_ci 87db96d56Sopenharmony_ciimport logging 97db96d56Sopenharmony_ciimport sys 107db96d56Sopenharmony_ci 117db96d56Sopenharmony_ci__all__ = [] 127db96d56Sopenharmony_ci 137db96d56Sopenharmony_ciLOG = None 147db96d56Sopenharmony_ciHAS_ERROR = False 157db96d56Sopenharmony_ci 167db96d56Sopenharmony_ci 177db96d56Sopenharmony_cidef public(f): 187db96d56Sopenharmony_ci __all__.append(f.__name__) 197db96d56Sopenharmony_ci return f 207db96d56Sopenharmony_ci 217db96d56Sopenharmony_ci 227db96d56Sopenharmony_ci@public 237db96d56Sopenharmony_cidef configure_logger(ns): 247db96d56Sopenharmony_ci global LOG 257db96d56Sopenharmony_ci if LOG: 267db96d56Sopenharmony_ci return 277db96d56Sopenharmony_ci 287db96d56Sopenharmony_ci LOG = logging.getLogger("make_layout") 297db96d56Sopenharmony_ci LOG.level = logging.DEBUG 307db96d56Sopenharmony_ci 317db96d56Sopenharmony_ci if ns.v: 327db96d56Sopenharmony_ci s_level = max(logging.ERROR - ns.v * 10, logging.DEBUG) 337db96d56Sopenharmony_ci f_level = max(logging.WARNING - ns.v * 10, logging.DEBUG) 347db96d56Sopenharmony_ci else: 357db96d56Sopenharmony_ci s_level = logging.ERROR 367db96d56Sopenharmony_ci f_level = logging.INFO 377db96d56Sopenharmony_ci 387db96d56Sopenharmony_ci handler = logging.StreamHandler(sys.stdout) 397db96d56Sopenharmony_ci handler.setFormatter(logging.Formatter("{levelname:8s} {message}", style="{")) 407db96d56Sopenharmony_ci handler.setLevel(s_level) 417db96d56Sopenharmony_ci LOG.addHandler(handler) 427db96d56Sopenharmony_ci 437db96d56Sopenharmony_ci if ns.log: 447db96d56Sopenharmony_ci handler = logging.FileHandler(ns.log, encoding="utf-8", delay=True) 457db96d56Sopenharmony_ci handler.setFormatter( 467db96d56Sopenharmony_ci logging.Formatter("[{asctime}]{levelname:8s}: {message}", style="{") 477db96d56Sopenharmony_ci ) 487db96d56Sopenharmony_ci handler.setLevel(f_level) 497db96d56Sopenharmony_ci LOG.addHandler(handler) 507db96d56Sopenharmony_ci 517db96d56Sopenharmony_ci 527db96d56Sopenharmony_ciclass BraceMessage: 537db96d56Sopenharmony_ci def __init__(self, fmt, *args, **kwargs): 547db96d56Sopenharmony_ci self.fmt = fmt 557db96d56Sopenharmony_ci self.args = args 567db96d56Sopenharmony_ci self.kwargs = kwargs 577db96d56Sopenharmony_ci 587db96d56Sopenharmony_ci def __str__(self): 597db96d56Sopenharmony_ci return self.fmt.format(*self.args, **self.kwargs) 607db96d56Sopenharmony_ci 617db96d56Sopenharmony_ci 627db96d56Sopenharmony_ci@public 637db96d56Sopenharmony_cidef log_debug(msg, *args, **kwargs): 647db96d56Sopenharmony_ci return LOG.debug(BraceMessage(msg, *args, **kwargs)) 657db96d56Sopenharmony_ci 667db96d56Sopenharmony_ci 677db96d56Sopenharmony_ci@public 687db96d56Sopenharmony_cidef log_info(msg, *args, **kwargs): 697db96d56Sopenharmony_ci return LOG.info(BraceMessage(msg, *args, **kwargs)) 707db96d56Sopenharmony_ci 717db96d56Sopenharmony_ci 727db96d56Sopenharmony_ci@public 737db96d56Sopenharmony_cidef log_warning(msg, *args, **kwargs): 747db96d56Sopenharmony_ci return LOG.warning(BraceMessage(msg, *args, **kwargs)) 757db96d56Sopenharmony_ci 767db96d56Sopenharmony_ci 777db96d56Sopenharmony_ci@public 787db96d56Sopenharmony_cidef log_error(msg, *args, **kwargs): 797db96d56Sopenharmony_ci global HAS_ERROR 807db96d56Sopenharmony_ci HAS_ERROR = True 817db96d56Sopenharmony_ci return LOG.error(BraceMessage(msg, *args, **kwargs)) 827db96d56Sopenharmony_ci 837db96d56Sopenharmony_ci 847db96d56Sopenharmony_ci@public 857db96d56Sopenharmony_cidef log_exception(msg, *args, **kwargs): 867db96d56Sopenharmony_ci global HAS_ERROR 877db96d56Sopenharmony_ci HAS_ERROR = True 887db96d56Sopenharmony_ci return LOG.exception(BraceMessage(msg, *args, **kwargs)) 897db96d56Sopenharmony_ci 907db96d56Sopenharmony_ci 917db96d56Sopenharmony_ci@public 927db96d56Sopenharmony_cidef error_was_logged(): 937db96d56Sopenharmony_ci return HAS_ERROR 94