55 lines
1.4 KiB
Python
55 lines
1.4 KiB
Python
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()
|