如何增加 android Log 类的控制台输出

2023-12-25

对于 Android 平台上的默认 Log,控制台输出的字符数量有限。大约等于 3000 多一点。因此,如果消息长度超过 3000 个字符,则不会在屏幕上显示。

我还没有找到比这更好的解决方案:

public class Log {
    private static int mode = android.util.Log.INFO;

    public static void e(String tag, String msg, Throwable tr) {
        if ((mode & android.util.Log.ERROR) <= 0) return;
        android.util.Log.e(tag, msg, tr);
    }

    public static void e(String tag, String msg) {
        if ((mode & android.util.Log.ERROR) <= 0) return;
        android.util.Log.e(tag, msg);
    }

    public static void w(String tag, String msg) {
        if ((mode & android.util.Log.WARN) <= 0) return;
        android.util.Log.w(tag, msg);
    }

    public static void i(String tag, String msg) {
        if ((mode & android.util.Log.INFO) <= 0) return;
        android.util.Log.i(tag, msg);
    }

    public static void d(String tag, String msg) {
        if ((mode & android.util.Log.DEBUG) <= 0) return;

            int length = msg.length();
            int kind = 3000;
            if (length >= kind) {
                int count = length / kind;
                int u = length % kind;
                int i = 0;
                for (i = 0; i < count; ++i) {
                    int start = i * kind;
                    int end = start + kind;
                    android.util.Log.d(tag, msg.substring(start, end));
                }
                if (u != 0) {
                    int start = length - u;
                    int end = start + u;
                    android.util.Log.d(tag, msg.substring(start, end));
                }
            } else {
                android.util.Log.d(tag, msg);
            }
    }

}

这个问题有更好的解决办法吗?


进行大型输出(JSON 等)时 1024 个字符限制的解决方法 是做一个简单的 for 循环,将它们记录在块中。

它可能不像您的那么复杂,但它很容易看,并且不会使代码变得过于混乱。

        String json = data.toString();
        int length = json.length();

        for(int i=0; i<length; i+=1024)
        {
            if(i+1024<length)
                Log.d("JSON OUTPUT", json.substring(i, i+1024));
            else
                Log.d("JSON OUTPUT", json.substring(i, length));
        }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何增加 android Log 类的控制台输出 的相关文章

随机推荐

  • 在 Git 中,本地分支可以相互跟踪 - 这有什么用?

    我听说在Git 你可以让local branch A跟踪另一个local branch B 为什么有人想要这样做 让本地分支跟踪另一个本地分支时想到的主要事情是 1 来自 Git 的关于某个分支在被跟踪分支之前 之后的更多通知消息以及 2
  • LINQ:转换为值类型“System.Int32”失败,因为具体化值为 null

    在数据库上执行 LINQ 查询时出现以下错误 转换为值类型 System Int32 失败 因为物化 值为空 我相信这是因为其中一列返回空值 这是我的 LINQ 命令 var facts from b in Program db Produ
  • xxxxxx.exe 不是有效的 Win32 应用程序

    我在 Visual Studio 2012 RC 中有一个小型 C C 项目 该应用程序解析 argv 然后使用以下命令调用另一个 exe 文件ShellExecute 我的应用程序在 Windows 7 上运行完美 但在 Windows
  • 如何使用 Spring Boot 和 Tomcat 指定我的 .keystore 文件?

    我正在尝试设置 Spring Security 以与 Spring Boot 的嵌入式 Tomcat 实例一起使用 有相当多的基本示例可以做到这一点 但我被困在他们离开的地方 他们通过 HTTP 而不是 HTTPS 进行基本身份验证 如果我
  • 使用knitr(从.Rhtml到html):如何在R图中嵌入链接?

    我正在使用 knit 将 Rhtml 文件转换为 html 文件 我正在调用名为 Q1 的块的输出 块来了 它基本上是 2x2 布局的 ggplot2 图形 library ggplot2 myplot list for i in 1 4
  • 如何在 Win32 中将文本插入丰富的编辑控件,同时保留任何以前的格式

    我正在 win32 中开发聊天应用程序 目前 我正在为丰富的编辑控件文本动态分配内存 附加新行并使用 SetWindowText 设置新文本 当带有特定关键字的消息到达时 应用程序会为该行着色并将其附加到聊天窗口 一切安好 收到下一条消息时
  • IF @@Rowcount = 0 -- Access 中的 SQL 语法错误

    我在 Excel 中有一个子例程 我想将数据写入 Access 表 我正在尝试更新表中的行 如果已存在 如果不存在则添加它 即将离开建议 http blogs msdn com b miah archive 2008 02 17 sql i
  • 我们如何在 iOS 应用程序中添加视频而不是启动图像?

    我想在我的应用程序启动时添加一个短视频 而不是 iOS 中的启动图像 我尝试过将其添加到viewDidAppear 我最初的方法UIViewController 但在显示视频之前仍然显示空白屏幕 您无法添加启动视频而不是启动图像 但是 您的
  • 全局“npm ERR!peer dep丢失”可以修复吗?

    寻找明确的直接答案 我已经安装了全局的 包A 假设 aws amplify 例如 aws amplify 包A 有 包B 想要 包C 例如aws amplify 具有需要询问者的询问者自动完成提示 npm ERR peer dep miss
  • 更改用户参数以包含他们的用户名

    要查看我的应用程序上的用户页面 您必须输入他们的 ID user 2 我怎样才能让它使用它们username在参数中而不是用户显示页面的 id 值中 我希望它是 user username or username 任何帮助 将不胜感激 谢谢
  • 数据库架构更改后更新 LINQ to SQL 类的最佳方法

    我在一个项目中使用 LINQ to SQL 类 该项目的数据库设计仍然有些变化 是否有一种简单的方法可以将类与架构同步 或者如果表设计发生更改 我是否需要手动更新类 您可以使用 SQLMetal exe 生成 dbml 和 或 cs vb
  • 如何使用 Tridion Resolver 从发布中删除项目?

    我正在尝试为组件实现自定义解析器 如 Chris 所描述的 http www tridiondeveloper com the story of sdl tridion 2011 custom resolver and the alloww
  • 将 HTML 转换为 contentEditable 中的纯文本

    我有一个contentEditable我删除粘贴内容的格式on paste 通过捕捉事件 然后我聚焦一个文本区域 将内容粘贴到其中 然后复制该值 答案几乎来自here https stackoverflow com a 10551358 1
  • 直接在 Azure Datalake 中将 Python Dataframe 写入 CSV 文件

    我已将 Excel 文件导入到 pandas 数据框中 并完成了数据探索和清理过程 我现在想要将清理后的数据帧写入 csv 文件回 Azure DataLake 而不先将其保存为本地文件 我正在使用熊猫3 我的代码如下所示 token li
  • 任意精度小数算术中的浮点数与有理数 (C/C++)

    由于实现 AP 分数的方法有两种 一种是模拟 AP 的存储和行为double数据类型 仅具有更多字节 另一种是使用现有的整数 APA 实现将小数表示为有理数 即表示为一对整数 分子和分母 这两种方式中哪一种更有可能提供高效的算术在性能方面
  • 如何用 C 语言编写布尔表达式计算器?

    假设我在文本文件中有一个这样的字符串 var1 AND var2 AND var3 OR var4 AND var5 OR var6 AND var7 将其解析为 C 程序并正确处理和设置变量后 它将最终看起来像这样 1 AND 0 AND
  • MVC、DbContext 和多线程

    关于这些主题有很多问题 每个人都有自己的看法 也许有人可以就以下问题给我一个很好的答案 我有一个 Asp NET MVC Web 服务 它使用 EntityFramework 来访问数据库 有一个控制器 每次用户向 Web 服务发出请求时都
  • Ignite C++ 客户端用于 cassandra 集成

    我正在开发一个数据通信应用程序 我想通过 ignite c 与 cassandra 进行通信 当我尝试将数据放入 cassandra 时 它工作正常 但我无法从中获取数据 这是我的代码 test h namespace ignite nam
  • 如何延迟未命名对象的销毁?

    我正在使用TempDir struct https doc rust lang org tempdir tempdir struct TempDir html search 在磁盘上创建和删除文件夹 这TempDir除了其构造之外 代码中并
  • 如何增加 android Log 类的控制台输出

    对于 Android 平台上的默认 Log 控制台输出的字符数量有限 大约等于 3000 多一点 因此 如果消息长度超过 3000 个字符 则不会在屏幕上显示 我还没有找到比这更好的解决方案 public class Log private