16

I have a log in Stackdriver that logs every request goes into my api and failed, and I want to write a script to count on the number of times each error message appears. The problem is, the export feature in Stackdriver V2 only allow me to sink upcoming error messages, but I only care about the logs entries that already lives in the log. Is there a way to download the complete log from Stackdriver?

xiu shi
  • 727
  • 8
  • 22

4 Answers4

14

You can now do this from the gcloud CLI tool, with gcloud logging read: https://cloud.google.com/logging/docs/reference/tools/gcloud-logging#reading_log_entries

Though in the scenario described, creating a log sink is the only way to capture events that are older than the stackdriver logging window, which is only 30 days even in the paid version.

crb
  • 8,132
  • 6
  • 37
  • 48
Nathaniel Irons
  • 547
  • 5
  • 9
6

Note that the filter is same as when you choose advanced filter in the Logging gui.

gcloud beta logging read "resource.type=\"gae_app\" resource.labels.module_id=\"api\" \"Ronald Reagan\"" --format=json --freshness=6d > x.txt
user1162020
  • 101
  • 2
  • 3
1

If you want to pull existing log data, you'll need to use the API to list entries: https://cloud.google.com/logging/docs/reference/v2/rest/v2/entries/list

You can do this directly from the API documentation page if you only need a one time solution.

Kirk Kelsey
  • 4,259
  • 1
  • 23
  • 26
0

I found the best way to do it it's with the gcloud cli Example you can you use : gcloud beta logging read ‘<filter>’ --project ”<project name>” --format json --freshness=<number of days to go back>

JohnBegood
  • 652
  • 1
  • 7
  • 8