在Android应用程序中禁用Volley日志

7

问题

我正在使用Volley库进行http(s)调用的SDK开发。

通过使用自定义的Log类包装器,我能够隐藏应用程序日志。但是我想禁用Volley的所有日志级别打印,因为这可能会暴露通过HTTPS发送的敏感信息。

我知道可以使用ProGuard禁用应用程序的日志记录,但我还希望能够从服务器端切换日志记录以便针对特定场景进行调试。

我尝试过的方法

我查看了源代码,似乎VolleyLog类中的DEBUG标志仅更改日志级别,但保留ERROR调用在日志中,因此对我来说不是解决方案。

是否有可能隐藏所有Volley日志?


你找到解决方法了吗?我也遇到了同样的问题,但找不到解决方法。 - Majstor
我也很好奇你是否找到了解决这个问题的方法?我使用了ProGuard,但它对于Volley错误日志没有起作用。链接 - Frackinfrell
3个回答

6

我曾经遇到同样的问题,最终在谷歌搜索一番后找到了解决方案,对我有效。

    VolleyLog.DEBUG = false;

如果将DEBUG属性设置为false,则禁用Volley日志记录。

我们需要在每个类中设置这个语句还是只需要在启动活动中设置? - Anees U
最好将这行代码添加到Application类中。 - darwin
3
即使 VolleyLog.DEBUG == false,Volley 仍会显示 Log.e 消息。 - Anessence
我应该在哪里添加? - Bhavin Patel
你好,在你的应用程序中的任何地方,但最好是在初始化Volley实例之前。 - Amin Bahiraee

0

来源: https://github.com/google/volley/issues/125 这对我有用。

你可以使用Proguard来实现这个,我建议这样做,因为它比在运行时关闭标志更有效率。类似这样:

-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(...);
}

0

我尝试了 VolleyLog.DEBUG = false; 但没有成功,最终我使用了以下方法:

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接