Java: come utilizzare due diversi sistemi di registrazione a seconda dell'ambiente in esecuzione


Ho sviluppato un'applicazione/libreria che utilizza la libreria apache log4j. Ora voglio usare la libreria anche in un'applicazione Android, dove la solita libreria log4j non funziona.

Ora so che ci sono alcune librerie lis slf4j o log4j per Android, ma la mia idea è di utilizzare dove disponibile la libreria log4j (quindi quando la libreria è in esecuzione su un computer) e utilizzare le funzionalità di registrazione Android quando è in esecuzione su dispositivi Android.

È possibile farlo? Credo che la soluzione dovrebbe essere implementare una classe di Logger interna che selezioni il sistema di registrazione disponibile.

  • È una buona idea?
  • O è meglio scegliere un solo sistema di registrazione?
  • O forse è meglio che la classe logger interno è implementato in due versioni separate la prima per pc reale e la seconda per Android.

E anche:

  • come posso rilevare l'ambiente in esecuzione? (È su Android o è su un computer? tratti sufficiente per rilevare se sono su un DalvikVM o un JavaVM? È possibile?

Qualsiasi aiuto / suggerimento è apprezzato.

Author: Ivan, 2012-01-26

1 answers

È possibile utilizzare la registrazione Java. È disponibile anche su Android API . Questa api su Android sembra che i delegati su Android.util.Log.

Si noti che per impostazione predefinita solo i messaggi INFO e up vengono stampati su logcat. Nel caso in cui si desideri visualizzare i livelli di registro inferiori, è possibile impostareprop sul dispositivo (maggiori informazioni):

adb -e shell setprop log.name DEBUG

E ricordarsi di impostare il livello di registro java sulla libreria:

Logger.setLevel (java.util.logging.Level.FINER);

Spero che questo aiuto

 1
Author: Fede, 2012-04-11 12:25:19