Registro de Java

En el tiempo de ejecución de Java, cualquier salida a STDOUT o STDERR se propaga a Cloud Logging. Sin embargo, no se propaga el nivel de gravedad de los registros detallados. Usa la API Java Logging (JUL) estándar para registrar mensajes y propagar los niveles de gravedad de registro correctos a Cloud Logging.

Si usas otro framework de registro, como SLF4J, Log4j 2 o Apache Commons Logging, puedes propagar el nivel de gravedad de registro correcto de una de las siguientes formas:

  • Da formato a los mensajes de registro en el formato JSON de registro estructurado para que el nivel de gravedad se propague a Cloud Logging.
  • Usa un puente o un adaptador para enviar mensajes de registro a la API Java Logging, que ya propaga los mensajes de registro en el formato correcto. Si sigues este enfoque, asegúrate de que no haya ningún adaptador que ya enrute desde la API Java Logging al framework de registro.

Si tu función usa diferentes bibliotecas y estas usan diferentes frameworks de registro, tendrás que configurar cada uno de los frameworks de registro que se usen. En las siguientes secciones se describen algunas de las opciones.

Función de Spring Cloud Run

Si usas la función Spring Cloud Run con el adaptador Google Cloud de funciones Spring Cloud Run, puedes generar el registro en el formato correcto mediante el Logging Starter Google Cloud de Spring Cloud y el CONSOLE_JSONappender para generar el registro en formato JSON. Spring usa SLF4J y Logback de forma predeterminada, pero también puedes enrutar los registros de SLF4J a la API de registro de Java. Consulta la sección SLF4J para obtener más información.

API de registro de Java (JUL)

Todos los entornos de Java de las funciones de Cloud Run admitidos incluyen el registro de Java con un controlador JSON que genera el registro en el formato correcto. Algunos frameworks de Java pueden añadir componentes adicionales para conectar JUL a otro framework de registro (como jul-to-slf4j bridge o Log4j JDK Logging Adapter). En ese caso, los mensajes de registro ya no tendrán el formato correcto. Si los mensajes de registro no tienen los niveles de gravedad correctos, asegúrate de que se hayan quitado esos puentes.

SLF4J

SLF4J puede escribir registros en la API Java Logging mediante el enlace del framework de registro slf4j-jdk14. Para obtener más información, consulta la documentación de SLF4J. Asegúrate de que no tienes el puente jul-to-slf4j.

Logback

Logback no tiene un appender que dirija los mensajes de registro a la API de Java Logging. Sin embargo, Logback se suele usar con la API SLF4J, por lo que puedes cambiar la implementación del registrador SLF4J a la API Java Logging.

Log4j 2

Log4j 2 no tiene un adaptador directo que enrute los mensajes de registro a la API de registro de Java. Si usas Log4j 2, primero debes enrutar los mensajes a SLF4J mediante el adaptador de Log4J 2 a SLF4J y, a continuación, configurar SLF4J para que use la implementación de la API de registro de Java. Asegúrate de no tener el adaptador de registro de JDK de Log4j.

Apache Commons Logging (JCL)

Apache Commons Logging tiene un adaptador de la API de registro de Java. Configura Commons Logging para usar Jdk14Logger. Para obtener más información, consulta la página sobre la configuración de Apache Commons Logging.