Escribe registros estructurados
Organiza tus páginas con colecciones
Guarda y categoriza el contenido según tus preferencias.
Escribe entradas de registro estructuradas con la correlación del registro de solicitudes mediante bibliotecas comunes.
Explora más
Para obtener documentación detallada en la que se incluye esta muestra de código, consulta lo siguiente:
Muestra de código
Salvo que se indique lo contrario, el contenido de esta página está sujeto a la licencia Atribución 4.0 de Creative Commons, y los ejemplos de código están sujetos a la licencia Apache 2.0. Para obtener más información, consulta las políticas del sitio de Google Developers. Java es una marca registrada de Oracle o sus afiliados.
[[["Fácil de comprender","easyToUnderstand","thumb-up"],["Resolvió mi problema","solvedMyProblem","thumb-up"],["Otro","otherUp","thumb-up"]],[["Difícil de entender","hardToUnderstand","thumb-down"],["Información o código de muestra incorrectos","incorrectInformationOrSampleCode","thumb-down"],["Faltan la información o los ejemplos que necesito","missingTheInformationSamplesINeed","thumb-down"],["Problema de traducción","translationIssue","thumb-down"],["Otro","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)."]]