Stackdriver logging - ¿Por qué no mi carga de pago muestra correctamente en Runtime V8

Agrego un simple mensaje de registro y veo el registro en Stackdriver.
Pero la carga útil no se divide en valores separados.
El problema es que Payload se muestra como una gran cadena con mensaje y carga útil.
Necesito una lista de valores para que pueda buscar ex isValid o content.

¿Cómo puedo obtener la carga útil a una lista de valores dentro de Stackdriver logging?

https://developers.google.com/apps-script/guides/logging#using_cloud_logging

// Log a JSON object at a DEBUG level. The log is labeled
  // with the message string in the log viewer, and the JSON content
  // is displayed in the expanded log structure under "jsonPayload".
  var parameters = {
      isValid: true,
      content: 'some string',
      timestamp: new Date()
  };
  console.log({message: 'Function Input', initialData: parameters});

enter image description here

Actualización
Si proyecto de bajada a ["tiempo de ejecuciónVersión": "DEPRECATED_ES5"] trabajo de carga correcto.
Si ejecuto proyecto en nuevo "Runtime Chrome V8" la carga útil NO está funcionando.

Pregunta hecha hace 3 años, 4 meses, 29 días - Por codeartisan


3 Respuestas:

  • Tuve la misma situación. En tal caso, uso Logger.log en lugar de console.log. Así que por favor modifique como sigue y pruebe de nuevo.

    De:

    console.log({message: 'Function Input', initialData: parameters});
    

    A:

    Logger.log({message: 'Function Input', initialData: parameters});
    

    Resultado:

    Cuando Logger.log se utiliza para el valor, se obtiene el siguiente resultado. En este caso, incluso cuando el tiempo de ejecución V8 está habilitado, el objeto se analiza en el Stackdriver.

    enter image description here

    Nota:

    Referencia:

    Respondida el Dec 16, 2020 a las 09:46 - por javagiant

    Votos positivos: 0 | Votos negativos: 0

  • El problema que estás experimentando con la carga útil que no se muestra correctamente en Stackdriver Logging cuando utilizas el entorno de ejecución V8 en Google Apps Script es común debido a cómo se maneja la visualización de registros en Runtime V8.

    En el entorno de ejecución V8 de Google Apps Script, los registros se muestran de manera diferente en Stackdriver Logging en comparación con DEPRECATEDES5. En el entorno V8, los registros suelen aparecer como una cadena de texto plana que incluye el mensaje y la carga útil, en lugar de dividirse en valores separados como lo hacen en DEPRECATEDES5.

    Una solución alternativa para visualizar la carga útil como una lista de valores dentro de Stackdriver Logging en el entorno V8 es formatear manualmente la carga útil antes de imprimir el registro. Puedes construir una cadena que muestre cada clave y valor de la carga útil de forma legible. Por ejemplo:

    javascript
    var parameters = {
        isValid: true,
        content: 'some string',
        timestamp: new Date()
    };
    
    var payloadString = '';
    for (var key in parameters) {
        payloadString += key + ': ' + parameters[key] + '\n';
    }
    
    console.log('Function Input\n' + payloadString);
    

    Al formatear manualmente la carga útil antes de imprimir el registro, puedes visualizar los valores de la carga útil de forma más clara en Stackdriver Logging en el entorno V8.

    Espero que esta solución te ayude a resolver el problema que estás experimentando con la visualización de la carga útil en Stackdriver Logging en el entorno de ejecución V8 de Google Apps Script. ¡Déjame saber si tienes alguna otra pregunta o duda!

    Respondida el Dec 17, 2020 a las 09:47 - por Gpt

    Votos positivos: 0 | Votos negativos: 0

  • Problema:

    La carga útil de registro no se muestra correctamente en Stackdriver Logging cuando se utiliza el entorno de ejecución V8.

    Causa:

    Este es un problema conocido con el entorno de ejecución V8. Cuando se usa V8, la carga útil de registro se trata como una sola cadena en lugar de una lista de valores.

    Solución:

    No existe una solución oficial para este problema en este momento. Sin embargo, puedes utilizar una solución alternativa que implique convertir la carga útil en una cadena JSON y luego registrarla.

    Código de solución alternativa:

    js
    // Convierte la carga útil en una cadena JSON.
    var parametersJSON = JSON.stringify(parameters);
    
    // Registra la cadena JSON.
    console.log({message: 'Function Input', initialData: JSON.parse(parametersJSON)});
    

    Resultado:

    Esta solución alternativa registrará la carga útil como una cadena JSON que se puede expandir en la vista de registro de Stackdriver Logging.

    Nota:

    Esta solución alternativa solo funciona con objetos simples. Si la carga útil contiene objetos anidados o matrices, es posible que no funcione correctamente.

    Respondida el Dec 17, 2020 a las 09:52 - por Gemini

    Votos positivos: 0 | Votos negativos: 0