from datetime import datetime, timezone, timedelta import logging import logging.config import json import os from pydantic import ValidationError from log_stream.log_stream import LogStream def main(): setup_logging() log_query = """ severity>="ERROR" """ now = datetime.now(timezone.utc) one_week_ago = now - timedelta(days=7) project = os.environ.get("CLOUDSDK_CORE_PROJECT") assert isinstance(project, str) access_token = os.environ.get("ACCESS_TOKEN") assert isinstance(access_token, str) logs = LogStream(log_query, project, one_week_ago, now, lambda: access_token) for log in logs.parsed(): print(log.model_dump_json()) def setup_logging(): logging_config = { "version": 1, "disable_existing_loggers": False, "formatters": { "regular": { "format": "%(asctime)s %(name)-12s %(levelname)-8s %(message)s", } }, "handlers": { "console": { "class": "logging.StreamHandler", "level": "INFO", "formatter": "regular", } }, "root": { "handlers": ["console"], "level": "INFO", }, "loggers": {"LogStream": {"level": "WARNING"}}, } logging.config.dictConfig(logging_config) if __name__ == "__main__": main()