2015-07-23 5 views
6

Das Problem

Ich entwickle ein SDK mit the Volley library für http (s) nennt.deaktivieren Volley-Logs in Android-Anwendung

Ich bin in der Lage, meine Anwendungsprotokolle mit einem benutzerdefinierten Log-Klassen-Wrapper zu verbergen, und ich möchte alle Log-Level-Drucken von Volley deaktivieren, da es möglicherweise sensible Informationen von HTTPS ausgesetzt.

Ich weiß, dass Sie proguard verwenden können, um die Protokollierung der Anwendung zu deaktivieren, aber ich möchte auch in der Lage sein, An- und Abmeldung von der Serverseite zum Debuggen bestimmter Szenarien zu aktivieren.

Was habe ich versucht

ich an der Quelle einen Blick nahm, und es scheint, dass die DEBUG flag in the VolleyLog Klasse nur die Protokollebene ändert, sondern hält ERROR Anrufe im Protokoll, es ist also keine Lösung für mich .

Ist es möglich, alle Volley Protokolle zu verstecken?

+0

Haben Sie eine Lösung gefunden? Ich habe ein ähnliches Problem und kann keine Lösung finden. – Majstor

+0

Ich bin auch neugierig, wenn Sie eine Lösung für dieses Problem gefunden haben? Ich habe ProGuard verwendet, aber es hat nicht für die Volley-Fehlerprotokolle funktioniert. [link] (http://stackoverflow.com/questions/33554184/disable-volley-error-logs-in-aar) – Frackinfrell

Antwort

6

ich gleiche Problem hatte und schließlich nach einiger Google-Suche fand ich die Lösung, die

VolleyLog.DEBUG = false; 

wenn Sie DEBUG Attribut für mich gearbeitet wird, die Sie false Volley Log

deaktiviert ist
+0

Müssen wir diese Anweisung in jeder Klasse oder nur in der Startaktivität setzen? –

+0

Es ist besser, diese Codezeile in der Application-Klasse hinzuzufügen. – darwin

+1

Volley zeigt immer noch Log.e-Nachrichten an, auch wenn VolleyLog.DEBUG == false – Anessence

0

Quelle: https://github.com/google/volley/issues/125 Es funktionierte für mich.

Sie können dies mit Proguard tun, was ich empfehlen würde, da es effizienter ist, als es zur Laufzeit sowieso abzumelden. Etwas wie:

-assumenosideeffects class com.android.volley.VolleyLog { 
    public static void v(...); 
    public static void d(...); 
    public static void i(...); 
    public static void w(...); 
    public static void v(...); 
}