¿Qué marco de registro de Android utilizar?

Mi pregunta parece ser fácilmente responsable, pero hay varias buenas soluciones. Me gusta elegir el mejor.

Marcos disponibles (no dude en sugerir más):

  • Androlog
  • SLF4J Android
  • Log4J – Android

Pros contras:

Androlog:

  • Pro: Similar a Android marco de registro, por lo que sólo hay pequeños cambios en el código existente; Capaz de enviar informes de fallos con más detalles en el informe de errores (los registros alrededor de la excepción); Buenos registros
  • Con: Ningún método java estándar "getLogger"; Configuración de la producción alcanzable subiendo el archivo de la característica a sdcard; Necesito llamar a init logging manualmente; Necesidad de crear LOG_TAG como constantes, o cortar para crear constantes de etiqueta de registro por Aspect para lograr el comportamiento estándar: las etiquetas son los nombres de clase; Cuando el registro es un requisito de negocio, necesitamos probarlo. Probando las llamadas estáticas en Android casi imposible; El maderero no puede ser inyectado por el marco

Log4J-Android:

  • Pro: forma estándar de iniciar sesión en Java; Compatible con SLF4J; Capaz de analizar archivos de propiedades;
  • Con: No incorporado en el sistema de informe de accidentes; Me parece: no es de uso común, por lo que podría ser peligroso para usarlo;

SLF4J-Android:

  • Pro: Parece ser desarrollado por más personas como Log4J-Android; El logger.debug("Some log message. Details: {}", someObject.toString()); Es una forma buena y eficaz de omitir concatenaciones de cadenas si el registrador está desactivado; Ligero ligero vinculante que delega a android.util.Log .
  • Con: Etiquetas de registro generadas automáticamente que tienen <= 23 caracteres de largo debido a una restricción de longitud de las etiquetas de registro en la plataforma de Android (por ejemplo, la etiqueta com.example.myapp.MyClass traducida a c*.e*.m*.MyClass ) Que puede resultar en la misma etiqueta de registro para diferentes clases (por ejemplo, com.example.app.MyClass y com.example.anotherapp.MyClass tanto traducir a c*.e*.a*.MyClass ); No incorporado en el sistema de informes de accidentes.

Además de estos, me gusta el comportamiento de Androlog, pero soy un dev de Java, familiarizado con log4j / slf4j. Definitivamente vamos a necesitar el sistema de informes de fallos, pero hay varios marcos para informes de fallos (al lado del informe de fallos por defecto de Android).

Puedo combinar algunos de ellos, por ejemplo, usar el android de Log4J, pero crear un appender para usar el framework androlog, pero tarde o temprano será un desastre, que debe evitarse.

Gracias por sus sugerencias, espero que los resultados ayuden a decidir otros en el futuro.

Edit: Como se menciona a continuación, puedo combinar por ejemplo: log4j-android con slf4j (whitch prefiero hacer si voy a utilizar log4j, porque el formato de registro de apoyo ("{}", …)), pero lo hace No contesta la pregunta. Tengo que elegir un marco, entonces puedo decorarlo con la fachada SLF4J.

La mejor manera. Creo, es usar SLF4J API + parte de su implementación.

Para aplicaciones de Android, puede utilizar lo siguiente:

  1. Android Logger es la implementación de SLF4J ligera pero fácil de configurar (<50 Kb).
  2. LOGBack es la implementación más potente y optimizada, pero su tamaño es de aproximadamente 1 Mb.
  3. Cualquier otro de su gusto: slf4jandroid , slf4j-android .

Por favor, compruebe esta primera respuesta

Dice:

SLF4J es básicamente una capa de abstracción. No es una implementación de registro. Esto significa que si está escribiendo una biblioteca y usa SLF4J, puede darle esa biblioteca a otra persona para que use y puede elegir qué implementación de registro usar con SLF4J, por ejemplo, log4j o la API de registro de Java. Ayuda a evitar que los proyectos dependan de muchas API de registro sólo porque utilizan bibliotecas que dependen de ellas.

Por lo tanto, para resumir: SLF4J no reemplaza log4j, que trabajan juntos. Elimina la dependencia de log4j de tu biblioteca / aplicación.

He intentado original slf4j.org-android pero desafortunadamente este tarro no pudo conseguir los mensajes de la depuración / detallados para ser registrado porque utiliza internamente LOG.isDebugEnabled () para la salida de la depuración que parece siempre ser falsa.

Actualmente uso la implementación alternativa de lp0-slf4j-android que utiliza un archivo de propiedades con la configuración de registro donde también puedo obtener mensajes de depuración / verbose si están habilitados.

  • contraseña de Android o número de teléfono para iniciar sesión
  • Registro de Android con Crashlytics
  • Logback-Android: error de "acción no aplicable" cuando se utiliza FixedWindowRollingPolicy con un parámetro SizeBasedTriggeringPolicy
  • Android: cómo almacenar los valores de las variables en el registro?
  • Cómo apagar el sonido MediaRecorder se reproduce cuando el estado cambia
  • Set Tono de timbre con mp3 de la carpeta res / raw
  • Cómo depurar cordova plugin y Registro con "android.util.log"
  • Creación y almacenamiento de archivos de registro en dispositivos en Android
  • Android Log.X no imprime stacktrace
  • Android Proguard no elimina todos los mensajes de registro
  • Informe de errores completo y personalizado de las aplicaciones de Android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.