Escreva registos estruturados
Mantenha tudo organizado com as coleções
Salve e categorize o conteúdo com base nas suas preferências.
Escreve entradas de registo estruturadas com correlação de registos de pedidos através de bibliotecas comuns.
Explore mais
Para ver documentação detalhada que inclui este exemplo de código, consulte o seguinte:
Exemplo de código
Exceto em caso de indicação contrária, o conteúdo desta página é licenciado de acordo com a Licença de atribuição 4.0 do Creative Commons, e as amostras de código são licenciadas de acordo com a Licença Apache 2.0. Para mais detalhes, consulte as políticas do site do Google Developers. Java é uma marca registrada da Oracle e/ou afiliadas.
[[["Fácil de entender","easyToUnderstand","thumb-up"],["Meu problema foi resolvido","solvedMyProblem","thumb-up"],["Outro","otherUp","thumb-up"]],[["Difícil de entender","hardToUnderstand","thumb-down"],["Informações incorretas ou exemplo de código","incorrectInformationOrSampleCode","thumb-down"],["Não contém as informações/amostras de que eu preciso","missingTheInformationSamplesINeed","thumb-down"],["Problema na tradução","translationIssue","thumb-down"],["Outro","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)."]]