Puedes escribir registros en Cloud Logging desde aplicaciones de Java mediante el adjuntador de Logbacko un controlador java.util.logging, o directamente mediante la biblioteca de Cloud Logging para Java.
No es necesario que el agente de Cloud Logging esté instalado a fin de usar la biblioteca de Cloud Logging para Java.
Antes de comenzar
- Accede a tu cuenta de Google Cloud. Si eres nuevo en Google Cloud, crea una cuenta para evaluar el rendimiento de nuestros productos en situaciones reales. Los clientes nuevos también obtienen $300 en créditos gratuitos para ejecutar, probar y, además, implementar cargas de trabajo.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Asegúrate de que la facturación esté habilitada para tu proyecto de Google Cloud.
-
Enable the Cloud Logging API.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Asegúrate de que la facturación esté habilitada para tu proyecto de Google Cloud.
-
Enable the Cloud Logging API.
Adjuntador de Logback para Cloud Logging
Mediante el adjuntador de Logback, puedes usar Cloud Logging con la fachada de registro SLF4J.
Instala la dependencia
If you are using Maven, add
the following to your pom.xml
file. For more information about
BOMs, see The Google Cloud Platform Libraries BOM.
If you are using Gradle, add the following to your dependencies:
If you are using sbt, add the following to your dependencies:
Configuración de Logback
Logback se puede configurar de manera programática o con una secuencia de comandos expresada en XML o Groovy.
Puedes personalizar el umbral de gravedad mínimo y el nombre de registro o proporcionar mejoras adicionales. Este es un ejemplo de configuración de Logback en formato XML:
Ejemplo
Una vez que hayas configurado Logback para que use el adjuntador de Logback de Cloud Logging, ahora puedes redireccionar registros con la API de Logging de SLF4J. Proporciona la configuración de Google Cloud si planeas ejecutar el ejemplo de forma local o fuera de Google Cloud. En este fragmento, se muestra cómo realizar registros con la fachada SLF4J en tu aplicación:
El controlador java.util.logging
También puedes usar la API de Cloud Logging mediante un controlador predeterminado de la API de Logging para Java.Instala la dependencia
If you are using Maven with
a BOM, add the following to your pom.xml
file:
If you are using Maven without a BOM, add this to your dependencies:
If you are using Gradle, add the following to your dependencies:
If you are using sbt, add the following to your dependencies:
If you're using Visual Studio Code, IntelliJ, or Eclipse, you can add client libraries to your project using the following IDE plugins:
The plugins provide additional functionality, such as key management for service accounts. Refer to each plugin's documentation for details.
Configuración de java.util.logging
Los controladores de Logging se pueden agregar de manera programática o mediante un archivo de configuración.
La ruta de acceso al archivo de configuración se debe proporcionar a tu aplicación como una propiedad del sistema: -Djava.util.logging.config.file=/path/to/logging.properties
Este es un ejemplo de un archivo de configuración:
Ejemplo
Proporciona la configuración de Google Cloud si planeas ejecutar el ejemplo de forma local o fuera de Google Cloud.
En este fragmento, se muestra cómo realizar registros con java.util.logging
:
Configuración común
En las siguientes secciones, se describe la configuración que se suele usar en el controlador java.util.logging
y el adjuntador de Logback para Cloud Logging.
Valores predeterminados
El adjuntador de Logback y el controlador java.util.logging
usan los siguientes valores predeterminados para crear una instancia de un cliente de Cloud Logging:
Nombre del registro:
java.log
Umbral mínimo para registrar:
INFO
Gravedad de limpieza:
ERROR
La biblioteca de Cloud Logging para Java agrupa los mensajes en lotes por tamaño y hora desde la última escritura. Los lotes con solicitudes de registro que alcanzan o superan la gravedad de limpieza se escriben de inmediato.
Detección de recursos supervisados
Todos los registros enviados a través de las bibliotecas de Cloud Logging requieren un tipo de recurso supervisado para identificar tu aplicación.
El adjuntador de Logback y el controlador java.util.logging
proporcionan detección automática del tipo de recurso de tus aplicaciones de App Engine, Compute Engine y Google Kubernetes Engine.
Un recurso supervisado global
se usa como predeterminado en otros entornos.
Puedes reemplazar el tipo de recurso supervisado por un tipo válido en la configuración del adjuntador de Logback o en la configuración del controlador java.util.logging
.
Campos y etiquetas adicionales
Con el adjuntador de Logback y el controlador java.util.logging
, puedes agregar o actualizar campos en un objeto LogEntry con una instancia de LoggingEnhancer.
Los optimizadores deben configurarse como se muestra en Configuración de Logback o en Configuración de java.util.logging
:
Es posible que el uso de etiquetas personalizadas no sea compatible con tu configuración. Por ejemplo: Los registros de Dataflow no incluyen estas etiquetas.
Si deseas obtener más información sobre la instalación, consulta la documentación de la biblioteca de Cloud Logging para Java. También puedes informar problemas mediante la Herramienta de seguimiento de errores.
Escribe registros con la biblioteca cliente de Cloud Logging
Si deseas obtener información sobre el uso de la biblioteca cliente de Cloud Logging para directamente sobre Java, consulta Bibliotecas cliente de Cloud Logging.
Ejecuta en Google Cloud
Para que una aplicación escriba registros con la biblioteca de Cloud Logging para Java, la
cuenta de servicio del recurso subyacente debe tener la
Rol de IAM de Escritor de registros (roles/logging.logWriter
).
La mayoría de los entornos de Google Cloud configuran automáticamente
cuenta de servicio para tener este rol.
App Engine
Cloud Logging se habilita automáticamente para App Engine, y la API de cuenta de servicio predeterminada tiene los permisos de IAM de forma predeterminada para escribir entradas de registro.
De forma predeterminada, el entorno estándar de App Engine usa la API de java.util.logging.Logger
, que escribe directamente en Cloud Logging y es fácil de configurar.
Para obtener más información, consulta la documentación de App Engine sobre cómo leer y escribir registros de aplicaciones.
Entorno flexible de App Engine
En el entorno flexible de App Engine, java.util.logging
usa ConsoleHandler
de forma predeterminada y envía registros a stdout
y stderr
.
El entorno de ejecución de Jetty se incluye en la biblioteca de Cloud Logging para Java.
El controlador java.util.logging
se puede usar a fin de realizar registros directamente en Cloud Logging, para ello, proporciona logging.properties
en tu app.yaml
, como se muestra a continuación:
env_variables:
JETTY_ARGS: -Djava.util.logging.config.file=WEB-INF/logging.properties
El registro de ID de seguimiento está disponible en los entornos de ejecución de Jetty si usas el controlador java.util.logging
o el adjuntador de Logback.
Cuando se ejecuta en el entorno flexible de App Engine, una instancia de TraceLoggingEnhancer agrega un ID de seguimiento seguro para subprocesos a todas las entradas de registro con la etiqueta trace_id
.
Google Kubernetes Engine (GKE)
GKE otorga automáticamente la cuenta de servicio predeterminada.
el rol de IAM de escritor de registros (roles/logging.logWriter
).
Si usas
Federación de identidades para cargas de trabajo para GKE
con esta cuenta de servicio predeterminada para permitir que las cargas de trabajo accedan a recursos
las APIs de Google Cloud, no se requiere ninguna configuración adicional.
Sin embargo, si usas la Federación de identidades para cargas de trabajo para GKE con una
cuenta de servicio de IAM personalizada y, luego, asegúrate de que la cuenta
tiene el rol de Escritor de registros (roles/logging.logWriter
).
Si es necesario, también puedes usar el siguiente comando para agregar el permiso de acceso logging.write
cuando creas el clúster:
gcloud container clusters create example-cluster-name \
--scopes https://www.googleapis.com/auth/logging.write
Compute Engine
Cuando uses las instancias de VM de Compute Engine, agrega el permiso de acceso cloud-platform
a cada instancia. Cuando crees una instancia nueva a través del
consola de Google Cloud, puedes hacerlo en la sección Identidad y acceso a la API
del panel Crear instancia. Usa la cuenta de servicio predeterminada de Compute Engine o una cuenta de servicio diferente y selecciona Permitir acceso total a las API de Cloud en la sección Identidad y acceso a la API. Cualquiera que sea el servicio
que selecciones, asegúrate de que se le haya otorgado la
El rol de escritor de registros en IAM y Administrador de la
Consola de Google Cloud
Ejecuta de forma local y en otros lugares
Si deseas usar la biblioteca de Cloud Logging para Java fuera de Google Cloud, sigue estos pasos: incluida la ejecución de la biblioteca en tu propia estación de trabajo, en la infraestructura computadoras o en las instancias de VM de otro proveedor de servicios en la nube, debes suministra tu ID del proyecto de Google Cloud y cuenta de servicio las credenciales directamente en la biblioteca de Cloud Logging para Java.
Para las cuentas de servicio existentes, haz lo siguiente:
Otorga la IAM a la cuenta de servicio Rol de IAM de Escritor de registros (
roles/logging.logWriter
). Para obtener más información sobre IAM, consulta Control de acceso.Configura las credenciales predeterminadas de la aplicación.
Si no tienes una cuenta de servicio, crea una. Para obtener información sobre este proceso, consulta Crea cuentas de servicio.
Si quieres obtener información general sobre los métodos que puedes usar para la autenticación, consulta Terminología: cuentas de servicio.
Consulta los registros
En la consola de Google Cloud, ve a la página Explorador de registros.
Si usas la barra de búsqueda para encontrar esta página, selecciona el resultado cuyo subtítulo es Logging.
En el Explorador de registros, debes especificar uno o más recursos, aunque la selección de recursos puede no ser obvia. Aquí encontrarás algunas sugerencias que te ayudarán a comenzar:
Si implementas tu aplicación en App Engine o utilizas las bibliotecas específicas de App Engine, configura tu recurso como Aplicación de GAE.
Si implementas tu aplicación en Compute Engine, configura el recurso como Instancia de VM de GCE.
Si implementas tu aplicación en Google Kubernetes Engine, la configuración de registro de tu clúster determina el tipo de recurso de las entradas de registro. Para obtener una debate sobre la observabilidad de Google Cloud heredada y la observabilidad las soluciones de Kubernetes Monitoring y cómo esas opciones afectan la tipo de recurso, consulta Migra a Kubernetes Monitoring de Google Cloud Observability.
Si la aplicación usa la API de Cloud Logging directamente, el recurso depende de la API y de tu configuración. Por ejemplo, en la aplicación, puedes especificar un recurso o usar un recurso predeterminado.
Si no ves ningún registro en el Explorador de registros, cambia al modo de consulta avanzada y usa una consulta vacía para ver todas las entradas de registro.
- Para cambiar al modo de consulta avanzada, haz clic en menú (▾) en la parte superior del visor de registros y selecciona Convertir a filtro avanzado.
- Borra el contenido que aparece en el cuadro de filtro.
- Haz clic en Enviar filtro.
Puedes examinar las entradas individuales para identificar tus recursos.
Para obtener información adicional, consulta Usa el Explorador de registros.