Log日志打印集合类型

看到Logger可以打印json,当时就想能不能打印集合呢,现在通过学习了一些反射的东西,写了出来,仅供参考。

public static <E> void list(List<E> list) {

        if (IS_DDEBUG) {

            if (list == null || list.size() == 0) {
                Logger.d("list为空");
            } else {
                Field[] allFields = null;

                StringBuilder builder = new StringBuilder();
                builder.append("此集合共有");
                builder.append(list.size());
                builder.append("条数据");
                builder.append("\r\n");
                for (int index = 0; index < list.size(); index++) {
                    E e = list.get(index);
                    if (index == 0) {
                        Class<?> cls = e.getClass();
                        allFields = cls.getDeclaredFields();
                    }

                    builder.append("第").append(String.valueOf(index + 1)).append("个\r\n");
                    builder.append("\t");
                    builder.append("{");
                    builder.append("\r\n");
                    for (Field field : allFields) {
                    //因为可能是private类型,故需要设置此项
                        field.setAccessible(true);
                        builder.append("\t");
                        builder.append("\t");
                        builder.append("\"");
                        builder.append(field.getName());
                        builder.append("\"");
                        builder.append(":");
                        try {
                            builder.append(field.get(e));
                        }
                        catch (IllegalAccessException e1) {
                            e1.printStackTrace();
                        }
                        builder.append("\r\n");
                    }

                    builder.append("\t");
                    builder.append("}");
                    builder.append("\r\n");
                }
                //对应的log日志输出方法,此处是用了Logger中的.d方法
                d(String.valueOf(builder));
            }
        }
    }

此工具方法只打印了一层,而未对第二层打印,也就是说其打印的结果当中可能会有如下:

"CREATOR":net.XXX.response.model.MediaInfo$1@705b0f6

但是已经满足了基本要求

PS:推荐使用Logger–>https://github.com/orhanobut/logger

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-08 04:33:04

Log日志打印集合类型的相关文章

常用的Log日志打印与输出

/** * log日志 * @author Jenly * */ public class LogUtils { private static final String TAG = "Jenly"; private static final String COLON = ":"; private static final String ARROW = "->"; /** 是否显示Log日志 */ private static boolean

项目log日志打印

①使用到的jar包: 大概是这几个,具体我也不知道是哪一个,下次使用的时候自己测试下. commons-logging-1.2.jar commons-discovery-0.5.jar log4j-1.2.17.jar ②log4j.properties log4j.rootLogger=DEBUG,CONSOLE,A log4j.addivity.org.apache=false log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender

超高逼格Log日志打印

代码地址如下:http://www.demodashi.com/demo/12646.html 前言 Log日志的打印一直是一个比较头疼的事,怎样才能让自己的log显示更多信息,怎样才能让自己的log更好的帮助我们定位问题,帮助调试,一直是我关注的问题. 我将Log打印封装到LogUtil类中,这篇文章涉及以下内容 LogUtil的优势 LogUtil的实现原理 LogUtil的使用 项目结构图和效果图 一. LogUtil的优势 LogUtil打印封装类,其有以下优点: 显示当前项目的包名 显

关于android手机不能打印Log日志

作为一个android开发者,当log打印不出来的的时候是很痛苦的.相信有人遇到过ADB连接正常,在开发工具上也正常显示设备信息正常却无法打印log或者只能打印部分log,那不妨可以试试进入工程模式调试一下log日志等级. 我的是360青春版,以此手机为例,首先进入拨号界面输入"*20121220#"(不同的品牌的进入方法不一样,可自行百度),进入界面1: 进入日志输出等级  界面2: 首先确定日志打印是否开启,如未开启请开启 界面3.4: 然后进入log日志等级,已android为例

Mybatis中在log日志或控制台打印执行的sql

最近在调试代码时,需要查看当前操作执行的sql,在日志里没查到,经过修改logback配置后成功,现记录如下:一.Mybatis版本是3.0.6(我正在用的版本)该版本只需要修改logback.xml <logger name="java.sql.Connection" level="DEBUG" /><logger name="java.sql.Statement" level="DEBUG" />&

Android学习笔记——log无法输出的解决方法和命令行查看log日志

本人邮箱:[email protected],欢迎交流讨论. 欢迎转载,转载请注明网址:http://www.cnblogs.com/JohnTsai/p/3983936.html. 知识点 1.log无法输出的解决方法 2.通过命令行(command line)查看Android调试的log日志 log无法输出的解决方法 今天调试Android程序,发现Eclipse不输出log日志了.这让我很烦恼,程序调试的log都没法看到了.Google搜索了一些资料.发现stackoverflow上有很

捕获异常、存sd卡、封装请求头体、加密map值、网络工具类、生成Json、Https协议、传log日志到服务器、app崩溃友好重启

点击打开链接,免积分下载 在集成了统计SDK(友盟统计,百度统计等)之后,有一个非常有利于测试的功能:错误分析!此功能能够将程序在运行中碰到的崩溃(runtimeException)问题反馈到服务器,帮助开发者改善产品,多适配机器.然而在公司android开发中不集成这些SDK,那应该怎么实现这样的功能呢?下面让我们来看下如何使用UncaughtExceptionHandler来捕获异常. 在Android开发中,常常会出现uncheched Exception 导致程序的crash,为了提供良

iOS开发- 日志打印(常见)

Q:如何打印当前的函数和行号? A:我们可以在打印时使用一些预编译宏作为打印参数,来打印当前的函数和行号.如: NSLog(@"%s:%d obj=%@", __func__, __LINE__, obj); NSLog(@"%s:%d obj=%@", __func__, __LINE__, self); //输出样式: //2015-01-06 17:13:17.852 justTest[15079:613] // -[ViewController viewDi

在idea中如何添加log日志

1.首先下载log4的jar包,官方路径为:http://www.apache.org/dyn/closer.cgi/logging/log4j/1.2.17/log4j-1.2.17.zip 2.下载完成后,把jar包导入到idea中,参考文档:http://jingyan.baidu.com/article/fec7a1e5f79e2b1191b4e74f.html 3.之后参考log4使用教程,参考链接:http://www.codeceo.com/article/log4j-usage.