MCPcopy Create free account
hub / github.com/YesianRohn/TextSSR / CaptureLogger

Class CaptureLogger

diffusers/src/diffusers/utils/testing_utils.py:863–899  ·  view source on GitHub ↗

Args: Context manager to capture `logging` streams logger: 'logging` logger object Returns: The captured output is available via `self.out` Example: ```python >>> from diffusers import logging >>> from diffusers.testing_utils import CaptureLogger >>>

Source from the content-addressed store, hash-verified

861
862
863class CaptureLogger:
864 """
865 Args:
866 Context manager to capture `logging` streams
867 logger: 'logging` logger object
868 Returns:
869 The captured output is available via `self.out`
870 Example:
871 ```python
872 >>> from diffusers import logging
873 >>> from diffusers.testing_utils import CaptureLogger
874
875 >>> msg = "Testing 1, 2, 3"
876 >>> logging.set_verbosity_info()
877 >>> logger = logging.get_logger("diffusers.pipelines.stable_diffusion.pipeline_stable_diffusion.py")
878 >>> with CaptureLogger(logger) as cl:
879 ... logger.info(msg)
880 >>> assert cl.out, msg + "\n"
881 ```
882 """
883
884 def __init__(self, logger):
885 self.logger = logger
886 self.io = StringIO()
887 self.sh = logging.StreamHandler(self.io)
888 self.out = ""
889
890 def __enter__(self):
891 self.logger.addHandler(self.sh)
892 return self
893
894 def __exit__(self, *exc):
895 self.logger.removeHandler(self.sh)
896 self.out = self.io.getvalue()
897
898 def __repr__(self):
899 return f"captured: {self.out}\n"
900
901
902def enable_full_determinism():

Calls

no outgoing calls