Registro en aplicaciones Android

improve this page | report issue

Visión general

Esta guía de aprendizaje proporciona fragmentos de código con el propósito de añadir funcionalidades de creación de registro en aplicaciones Android.

Requisito previo: Asegúrese de leer la visión general de recopilación de registro del lado del cliente.

Habilitación de la captura de registro

De forma predeterminada, la captura de registro está habilitada. La captura de registro, que es posible habilitar e inhabilitar mediante programación, guarda registros en el cliente. Los registros se envían al servidor con una llamada de envío explícita, o mediante un registro automático.

Nota: La habilitación de la captura del registro en niveles de detalle elevados puede afectar al consumo de la CPU del dispositivo, el espacio del sistema de archivos y el tamaño de la carga útil cuando el cliente envía registros a través de la red.

Para inhabilitar la captura de registro:

Logger.setCapture(false);

Envío de registros capturados

Envíe los registros a MobileFirst de acuerdo a la lógica de su aplicación. También es posible habilitar el registro automático para enviar registros. Si los registros no se envían antes de que alcancen el tamaño máximo, el archivo de registro se depura en favor de registros más recientes.

Nota: Adopte el siguiente patrón al recopilar datos de registro. El envío de datos en un intervalo de tiempo garantiza que está viendo sus datos de registro en tiempo casi real en MobileFirst Analytics Console.

Timer timer = new Timer();
timer.schedule(new TimerTask() {
  @Override
  public void run() {
    Logger.send();
  }
}, 0, 60000);

Para asegurarse de que todos los registros capturados se envían, considere un de las siguientes estrategias:

  • Llamar al método send en un intervalo de tiempo.
  • Llamar al método send desde las llamadas de retorno de suceso del ciclo de vida de la aplicación.
  • Incremente el tamaño máximo de archivo del almacenamiento intermedio de registro persistente (en bytes):
Logger.setMaxFileSize(150000);

Envío de registro automático

De forma predeterminada, el envío de registro automático está habilitado. Cada vez que se envía una solicitud de recurso satisfactoria al servidor, también se envían los registros capturados, con un intervalo mínimo de 60 segundos entre envíos. El envío de registro automático se puede habilitar o inhabilitar desde el cliente.

Para habilitar:

Logger.setAutoSendLogs(true);

Para inhabilitar:

Logger.setAutoSendLogs(false);

Cambiar el intervalo de autoSendLog

De forma predeterminada, el intervalo de autoSendLog se establece en 60 segundos. El intervalo de AutoSendLog se puede modificar utilizando el método siguiente.

Para establecer el intervalo de autoSendLog en 120 segundos, consulte el siguiente fragmento.

Logger.setAutoSendLogs(true, 120);

Ajuste preciso con la API Logger

El SDK de cliente de MobileFirst utiliza internamente la API Logger. De forma predeterminada, se capturan las entradas de registro que el SDK realiza. Para un ajuste fino en la recopilación del registro, utilice instancias de Logger con nombres de paquete. También puede controlar qué nivel de registro se captura mediante las analíticas utilizando filtros desde el lado del servidor.

A modo de ejemplo para capturar solo registros cuando el nivel sea ERROR para el nombre de paquete myApp, siga estos pasos.

  1. Utilice una instancia de Logger con el nombre de paquete myApp.

    Logger logger = Logger.getInstance("MyApp");
    
  2. Opcional: Especifique un filtro para restringir la captura de registro y la salida de registro a únicamente el nivel y paquete especificados mediante programación.

    HashMap<String, LEVEL> filters = new HashMap<>();
    filters.put("MyApp", LEVEL.ERROR);
    Logger.setFilters(filters);
    
  3. Opcional: Controle los filtros de manera remota recuperando un perfil de configuración de servidor.

Recuperación de perfiles de configuración del servidor

Los niveles de registro se pueden establecer por el cliente o recuperando perfiles de configuración del servidor. Desde MobileFirst Analytics Console, se puede establecer de forma global un nivel de registro (todas las instancias de Logger) o para un paquete o paquetes específicos.

Para obtener información sobre cómo configurar el filtro desde MobileFirst Analytics Console, consulte Configuración de filtros de registro.

Para que el cliente recupere las modificaciones de configuración establecidas en el servidor, se debe llamar al método updateConfigFromServer desde un lugar en el código que se ejecute de forma regular como, por ejemplo en las llamadas de retorno del ciclo de vida de la aplicación.

Logger.updateConfigFromServer();

Ejemplo de creación de registro

La salida se dirige a la consola JavaScript del navegador, LogCat o la consola Xcode.

import com.worklight.common.Logger;

public class MathUtils{
  private static final Logger logger = Logger.getInstance(MathUtils.class.getName());
  public int sum(final int a, final int b){
    logger.setLevel(LEVEL.DEBUG);
    int sum = a + b;
    logger.debug("sum called with args " + a + " and " + b + ". Returning " + sum);
    return sum;
  }
}
Inclusive terminology note: The Mobile First Platform team is making changes to support the IBM® initiative to replace racially biased and other discriminatory language in our code and content with more inclusive language. While IBM values the use of inclusive language, terms that are outside of IBM's direct influence are sometimes required for the sake of maintaining user understanding. As other industry leaders join IBM in embracing the use of inclusive language, IBM will continue to update the documentation to reflect those changes.
Last modified on May 13, 2020