Download sglang/test/registered/utils/test_log_utils.py from FasterDFlash/Hanrui: direct link, hf CLI and curl.
- Browser
- Download file 2.74 kB
-
https://huggingface.co/FasterDFlash/Hanrui/resolve/main/sglang/test/registered/utils/test_log_utils.py
- Command line
-
hf download hf://FasterDFlash/Hanrui/sglang/test/registered/utils/test_log_utils.py
-
curl -L -o test_log_utils.py https://huggingface.co/FasterDFlash/Hanrui/resolve/main/sglang/test/registered/utils/test_log_utils.py
2.74 kB
| import io | |
| import json | |
| import tempfile | |
| import unittest | |
| import uuid | |
| from contextlib import redirect_stdout | |
| from pathlib import Path | |
| from sglang.srt.utils.log_utils import create_log_targets, log_json | |
| from sglang.test.ci.ci_register import register_cpu_ci | |
| register_cpu_ci(est_time=1, suite="default") | |
| class TestLogUtils(unittest.TestCase): | |
| def test_stdout(self): | |
| for targets in [["stdout"], None]: | |
| with self.subTest(targets=targets): | |
| buf = io.StringIO() | |
| with redirect_stdout(buf): | |
| loggers = create_log_targets( | |
| targets=targets, name_prefix=f"test_stdout_{uuid.uuid4()}" | |
| ) | |
| self.assertEqual(len(loggers), 1) | |
| log_json(loggers[0], "test.event", {"key": "value"}) | |
| data = json.loads(buf.getvalue().strip()) | |
| self.assertIn("timestamp", data) | |
| self.assertEqual(data["event"], "test.event") | |
| self.assertEqual(data["key"], "value") | |
| def test_file(self): | |
| with tempfile.TemporaryDirectory() as temp_dir: | |
| loggers = create_log_targets( | |
| targets=[temp_dir], name_prefix=f"test_file_{uuid.uuid4()}" | |
| ) | |
| self.assertEqual(len(loggers), 1) | |
| log_json(loggers, "file.event", {"data": 123}) | |
| _flush_all(loggers) | |
| data = _read_log_file(temp_dir) | |
| self.assertIn("timestamp", data) | |
| self.assertEqual(data["event"], "file.event") | |
| self.assertEqual(data["data"], 123) | |
| def test_multiple_targets(self): | |
| with tempfile.TemporaryDirectory() as temp_dir: | |
| buf = io.StringIO() | |
| with redirect_stdout(buf): | |
| loggers = create_log_targets( | |
| targets=["stdout", temp_dir], | |
| name_prefix=f"test_multi_{uuid.uuid4()}", | |
| ) | |
| self.assertEqual(len(loggers), 2) | |
| log_json(loggers, "multi.event", {"x": 1}) | |
| _flush_all(loggers) | |
| stdout_data = json.loads(buf.getvalue().strip()) | |
| file_data = _read_log_file(temp_dir) | |
| self.assertEqual(stdout_data["event"], "multi.event") | |
| self.assertEqual(file_data["event"], "multi.event") | |
| self.assertEqual(stdout_data["x"], file_data["x"]) | |
| def _flush_all(loggers: list) -> None: | |
| for logger in loggers: | |
| for handler in logger.handlers: | |
| handler.flush() | |
| def _read_log_file(temp_dir: str) -> dict: | |
| log_files = list(Path(temp_dir).glob("*.log")) | |
| assert len(log_files) == 1 | |
| return json.loads(log_files[0].read_text().strip()) | |
| if __name__ == "__main__": | |
| unittest.main() | |