Strukturierte Logs schreiben
Mit Sammlungen den Überblick behalten
Sie können Inhalte basierend auf Ihren Einstellungen speichern und kategorisieren.
Schreibt strukturierte Logeinträge mit einer Anfragelogkorrelation unter Verwendung gängiger Bibliotheken.
Weitere Informationen
Eine ausführliche Dokumentation, die dieses Codebeispiel enthält, finden Sie hier:
Codebeispiel
Nächste Schritte
Wenn Sie nach Codebeispielen für andere Google Cloud -Produkte suchen und filtern möchten, können Sie den Google Cloud -Beispielbrowser verwenden.
Sofern nicht anders angegeben, sind die Inhalte dieser Seite unter der Creative Commons Attribution 4.0 License und Codebeispiele unter der Apache 2.0 License lizenziert. Weitere Informationen finden Sie in den Websiterichtlinien von Google Developers. Java ist eine eingetragene Marke von Oracle und/oder seinen Partnern.
[[["Leicht verständlich","easyToUnderstand","thumb-up"],["Mein Problem wurde gelöst","solvedMyProblem","thumb-up"],["Sonstiges","otherUp","thumb-up"]],[["Schwer verständlich","hardToUnderstand","thumb-down"],["Informationen oder Beispielcode falsch","incorrectInformationOrSampleCode","thumb-down"],["Benötigte Informationen/Beispiele nicht gefunden","missingTheInformationSamplesINeed","thumb-down"],["Problem mit der Übersetzung","translationIssue","thumb-down"],["Sonstiges","otherDown","thumb-down"]],[],[],[],null,["# Write structured logs\n\nWrites structured log entries with request log correlation using common libraries.\n\nExplore further\n---------------\n\n\nFor detailed documentation that includes this code sample, see the following:\n\n- [Logging and viewing logs](/anthos/run/archive/docs/logging)\n- [Logging and viewing logs in Cloud Run](/run/docs/logging)\n- [Logging and viewing logs in Knative serving](/kubernetes-engine/enterprise/knative-serving/docs/logging)\n- [View and write Cloud Run function logs](/functions/1stgendocs/monitoring/logging)\n\nCode sample\n-----------\n\n### Go\n\n\nTo authenticate to Cloud Run, set up Application Default Credentials.\nFor more information, see\n\n[Set up authentication for a local development environment](/docs/authentication/set-up-adc-local-dev-environment).\n\n\n func init() {\n \t// Disable log prefixes such as the default timestamp.\n \t// Prefix text prevents the message from being parsed as JSON.\n \t// A timestamp is added when shipping logs to Cloud Logging.\n \tlog.SetFlags(0)\n }\n\n func indexHandler(w http.ResponseWriter, r *http.Request) {\n \t// Uncomment and populate this variable in your code:\n \t// projectID = \"The project ID of your Cloud Run service\"\n\n \t// Derive the traceID associated with the current request.\n \tvar trace string\n \tif projectID != \"\" {\n \t\ttraceHeader := r.Header.Get(\"X-Cloud-Trace-Context\")\n \t\ttraceParts := strings.Split(traceHeader, \"/\")\n \t\tif len(traceParts) \u003e 0 && len(traceParts[0]) \u003e 0 {\n \t\t\ttrace = fmt.Sprintf(\"projects/%s/traces/%s\", projectID, traceParts[0])\n \t\t}\n \t}\n\n \tlog.Println(Entry{\n \t\tSeverity: \"NOTICE\",\n \t\tMessage: \"This is the default display field.\",\n \t\tComponent: \"arbitrary-property\",\n \t\tTrace: trace,\n \t})\n\n \tfmt.Fprintln(w, \"Hello Logger!\")\n }\n\n### Java\n\n\nTo authenticate to Cloud Run, set up Application Default Credentials.\nFor more information, see\n\n[Set up authentication for a local development environment](/docs/authentication/set-up-adc-local-dev-environment).\n\n // Build structured log messages as an object.\n Object globalLogFields = null;\n\n // Add log correlation to nest all log messages beneath request log in Log Viewer.\n // TODO(developer): delete this code if you're creating a Cloud\n // Function and it is *NOT* triggered by HTTP.\n String traceHeader = req.headers(\"x-cloud-trace-context\");\n if (traceHeader != null && project != null) {\n String trace = traceHeader.split(\"/\")[0];\n globalLogFields =\n kv(\n \"logging.googleapis.com/trace\",\n String.format(\"projects/%s/traces/%s\", project, trace));\n }\n // -- End log correlation code --\n\n // Create a structured log entry using key value pairs.\n // For instantiating the \"logger\" variable, see\n // https://cloud.google.com/run/docs/logging#run_manual_logging-java\n logger.error(\n \"This is the default display field.\",\n kv(\"component\", \"arbitrary-property\"),\n kv(\"severity\", \"NOTICE\"),\n globalLogFields);\n\n### Node.js\n\n\nTo authenticate to Cloud Run, set up Application Default Credentials.\nFor more information, see\n\n[Set up authentication for a local development environment](/docs/authentication/set-up-adc-local-dev-environment).\n\n\n // Uncomment and populate this variable in your code:\n // const project = 'The project ID of your function or Cloud Run service';\n\n // Build structured log messages as an object.\n const globalLogFields = {};\n\n // Add log correlation to nest all log messages beneath request log in Log Viewer.\n // (This only works for HTTP-based invocations where `req` is defined.)\n if (typeof req !== 'undefined') {\n const traceHeader = req.header('X-Cloud-Trace-Context');\n if (traceHeader && project) {\n const [trace] = traceHeader.split('/');\n globalLogFields['logging.googleapis.com/trace'] =\n `projects/${project}/traces/${trace}`;\n }\n }\n\n // Complete a structured log entry.\n const entry = Object.assign(\n {\n severity: 'NOTICE',\n message: 'This is the default display field.',\n // Log viewer accesses 'component' as 'jsonPayload.component'.\n component: 'arbitrary-property',\n },\n globalLogFields\n );\n\n // Serialize to a JSON string and output.\n console.log(JSON.stringify(entry));\n\n### Python\n\n\nTo authenticate to Cloud Run, set up Application Default Credentials.\nFor more information, see\n\n[Set up authentication for a local development environment](/docs/authentication/set-up-adc-local-dev-environment).\n\n # Uncomment and populate this variable in your code:\n # PROJECT = 'The project ID of your Cloud Run service';\n\n # Build structured log messages as an object.\n global_log_fields = {}\n\n # Add log correlation to nest all log messages.\n # This is only relevant in HTTP-based contexts, and is ignored elsewhere.\n # (In particular, non-HTTP-based Cloud Functions.)\n request_is_defined = \"request\" in globals() or \"request\" in locals()\n if request_is_defined and request:\n trace_header = request.headers.get(\"X-Cloud-Trace-Context\")\n\n if trace_header and PROJECT:\n trace = trace_header.split(\"/\")\n global_log_fields[\n \"logging.googleapis.com/trace\"\n ] = f\"projects/{PROJECT}/traces/{trace[0]}\"\n\n # Complete a structured log entry.\n entry = dict(\n severity=\"NOTICE\",\n message=\"This is the default display field.\",\n # Log viewer accesses 'component' as jsonPayload.component'.\n component=\"arbitrary-property\",\n **global_log_fields,\n )\n\n print(json.dumps(entry))\n\nWhat's next\n-----------\n\n\nTo search and filter code samples for other Google Cloud products, see the\n[Google Cloud sample browser](/docs/samples?product=cloudrun)."]]