美文网首页
安卓 log打印不全 只显示部分log的解决方案

安卓 log打印不全 只显示部分log的解决方案

作者: EraJieZhang | 来源:发表于2019-08-13 20:53 被阅读0次

日常开发时我们经常使用log来打印数据用来调试程序或者查看数据,有些时候我们需要打印的数据很长比如List数组里数据较多的时候不想写for循环打印,或者超长的json数据,这时候只会显示部分数据。

原因

Android系统对日志长度有限制的,最大长度为4K(注意是字符串的长度),超过这个范围的自动截断,所以就会出现打印不全的情况。

从Android内核源码来看,在logger.h头文件中有以下宏定义:

#define LOGGER_ENTRY_MAX_LEN        (4*1024)  
#define LOGGER_ENTRY_MAX_PAYLOAD    \  
    (LOGGER_ENTRY_MAX_LEN - sizeof(struct logger_entry))

解决方案

1.使用断点debug模式在编译器里产看数据(简单省事)
2.编译/修改现在使用的Logutils方法:
代码如下:

public class LogUtil {
    /**
     * 截断输出日志
     * @param msg
     */
    public static void longlog(String tag, String msg) {
        if (tag == null || tag.length() == 0 
                || msg == null || msg.length() == 0)
            return;

        int segmentSize = 3 * 1024;
        long length = msg.length();
        // 长度小于等于限制直接打印
        if (length <= segmentSize ) {
             Log.e(tag, msg);
        }else {
            // 循环分段打印日志
            while (msg.length() > segmentSize ) {
                String logContent = msg.substring(0, segmentSize );
                msg = msg.replace(logContent, "");
                Log.e(tag, logContent);
            }
            // 打印剩余日志    
            Log.e(tag, msg);
        }
    }
}  

把多次打印的数据整合到一起即可。


相关文章

  • 安卓 log打印不全 只显示部分log的解决方案

    日常开发时我们经常使用log来打印数据用来调试程序或者查看数据,有些时候我们需要打印的数据很长比如List数组里数...

  • 安卓开发入门教程-常用工具_Log

    关注 安卓007 ,免费获取全套安卓开发学习资料 什么是Log Log是安卓程序用来打印日志的工具,相比于默认的控...

  • 关于Log打印不全

    Android系统对日志长度有限制的,最大长度为4K(注意是字符串的长度),超过这个范围的自动截断,所以就会出现打...

  • 【安卓稳定性】anr信息搜集过程

    在安卓anr发生的时候,会进行anr现场的log打印以及trace文件的输出,以便于安卓开发者进行问题的分析。本文...

  • Timber

    Timber原意是木材,JakeWharton大神编写的Log库,对安卓的Log进行了一层封装,让Log的处理以列...

  • Timber简介

    刚刚接触安卓的人,一定对Log系列不陌生。我也同样如此。只是在一段时间后才知道,正式产品里面我们是不希望打印Log...

  • Logger源码理解分析

    安卓开发过程中,log日志是我们接触最多的一部分。如何优雅的获取log日志呢?我个人推荐使用Logger GitH...

  • 解决Xcode8log打印信息不全的问题

    更新到Xcode8.0以后,真机调试打印的log信息显示不全,无法显示中文

  • Android View 绘制流程 ( 一 ) Measure

    首先思考一个问题 Log - 1 打印值为多少 ?Log - 2 打印值为多少 ?Log - 3 打印值为多少 ?...

  • Android Studio生成 Log快捷键

    生成TAG 生成Log.d() 生成Log.e() 生成Log.i()或Log.w() 打印方法参数 打印方法返回值

网友评论

      本文标题:安卓 log打印不全 只显示部分log的解决方案

      本文链接:https://www.haomeiwen.com/subject/lyhijctx.html