android 使用log4j SLF4J 输出日志到文件中

2023-05-16

       android的logcat在写代码的时候挺好用,但是在现网环境中缺乏有效的手段将日志实时的打印到文件中,在出现问题的时候可以获取第一手的信息。其实logcat中内容也不是完全不能获取,下面提供获取的方法:

       Process process = Runtime.getRuntime().exec("logcat -d");
       BufferedReader bufferedReader = new BufferedReader( new InputStreamReader(process.getInputStream()));

       获取到了日志文件的输入流,是打印到控制台还是文件中都没问题。但是每次获取的都是一整片的东西,多次打印会有信息重复的问题,而且效率也的确太低了。多次尝试处理后决定放弃这种方案,改用log4j,相信搞过web开发的都不陌生。

       首先要引入一个log4j.jar的包,  http://logging.apache.org/log4j/1.2/download.html。其次还需要一个2个java的文件,分别是LogCatAppender.java, LogConfigurator.java,github上有开源的完整工程http://www.oschina.net/p/slf4j-android/,但是只需要2个文件就可以搞定,这两个文件粘贴到自己的工程中。

       需要的东西都齐了,怎么开始日志的打印呢? 第一:在工程的启动的时候初始化日志的配置

        final LogConfigurator logConfigurator = new LogConfigurator();
        logConfigurator.setFileName(path);
        logConfigurator.setRootLevel(Level.ALL);
        logConfigurator.setLevel("org.apache", Level.ALL);
        logConfigurator.setFilePattern("%d %-5p [%c{2}]-[%L] %m%n");
        logConfigurator.setMaxFileSize(1024 * 1024 * 5);
        logConfigurator.setImmediateFlush(true);
        logConfigurator.configure();   

      其中红色的path是你日志输出到SD卡的路径,后边一个红色的是日志的打印级别。初始化完成后,就可以使用了,例如:

  private Logger log = Logger.getLogger(MainActivity.class);
  log.info(XXXX);

       打完收工,不明白的留言。


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

android 使用log4j SLF4J 输出日志到文件中 的相关文章

随机推荐

  • 如何优雅的退出qemu虚拟环境

    在console环境下 xff0c 先 按 ctrl 43 a xff0c 释放之后再按 x 键 既可terminate qemu 注 xff1a 1 a 和 x 均为小写 2 必须先释放ctrl 43 a 之后 再按x键
  • xmake经验总结1:解决c++ future/promise抛出std::system_error的问题

    1 背景 1 1 场景 编译器 xff1a gcc 9 4 运行系统 xff1a Ubuntu 20 04 4 LTS xmake v2 6 7 场景 xff1a 其大致场景是使用c 43 43 的future promise功能 xff0
  • 神经网络实现手写数字识别(MNIST)

    一 缘起 原本想沿着 传统递归算法实现迷宫游戏 gt 遗传算法实现迷宫游戏 gt 神经网络实现迷宫游戏的思路 xff0c 在本篇当中也写如何使用神经网络实现迷宫的 xff0c 但是研究了一下 xff0c 感觉有些麻烦不太好弄 xff0c 所
  • 【AI】Auto-GPT:当时代抛弃你的时候,不会和你说一声再见!

    当时代抛弃你的时候 xff0c 不会和你说一声再见 xff01 Auto GPT Code Auto GPT 一个全自动化的GPT 4 Collecting BOTAI Auto GPT 官网网站
  • 解决visio对象在word中显示不全的问题

    作为一个软件工程师 xff0c 编写技术文档是常有的事情 xff0c 使用visio绘制各种图形 如 xff0c 流程图 xff0c 结构图 xff0c 框架图 xff0c 状态图等等 也是再正常不过的事情 如果我们在word中撰写文档时
  • git submodule使用以及注意事项

    一 背景 在平时的软件开发过程中常常会有这样的场景 xff0c 自己负责的某个模块会依赖其他模块或者第三方的library 这时你自己的模块是一个独立的代码仓库 xff0c 你想要实现这样一种功能 xff0c 当你从你的模块的代码仓库里把代
  • Webpack5 - 基本使用

    一 webpack有何作用 webpack是一个Javascript应用程序的模块打包器 它可以递归地构建一个应用程序的模块依赖关系图 xff0c 然后将所有模块打包在一起 为什么需要模块打包器 xff1a 现在的应用程序模块文件很多 xf
  • Vue.js - VueRouter的Hash与History模式 / 手写VueRouter

    一 Hash与History模式 Hash模式History模式url地址外观http localhost 8081 abouthttp localhost 8080 about原理基于锚点 xff0c 监听锚点变化时触发的onhashch
  • Vue.js - Vue.js响应式原理(1/2)

    一 数据驱动 数据响应式 xff1a 数据改变 xff0c 则视图改变 xff0c 避免频繁的Dom操作 xff0c 提高运行效率 双向绑定 xff1a 数据改变 xff0c 则视图改变 xff1b 视图改变 xff0c 则数据也随之改变
  • Vue.js - 模拟Vue.js响应式原理(2/2)

    项目仓库 xff1a https gitee com big right right vue responsive tree master L8 一 类的说明 Vue类 xff1a 保存传入的选项数据 xff0c 把选项data中的成员注入
  • .NET用NCO连接SAP RFC---写数据到SAP

    1 环境 xff1a a win7 43 64位操作系统 b VS2012 c nco3 0 xff08 64bit 下载网址 xff1a http www dllbang com dll sapnco dll xff09 xff0c d
  • .NET Framwork,C#入门开发教程,零基础必看

    初识 NET Framwork和开发过程 一 什么是 NET Framework NETFramework是一个开发平台 xff0c 可以在其上使用多种语言开发程序 xff1a 如C xff0c VB xff0c C 43 43 xff08
  • 如何清除IIS缓存

    问题描述 xff1a 在IIS的默认网站下创建了一个虚拟目录名A xff0c 然后删除这个虚拟目录 后来需要重新创建一个同名虚拟目录 xff0c 映射的还是原来的项目文件 xff0c 只是项目文件的物理路径发生了变化 xff0c 这个新虚拟
  • jqGrid 多选复选框 编辑列

    1 首先看一下效果 2 html代码 lt table id 61 34 grid table 34 gt lt table gt 3 在 function 方法中 xff0c 写如下方法 xff0c 用json数据填充jqGrid xff
  • 【NERF】及其变种

    CVPR 2023 Interactive Segmentation of Radiance Fields Nerf重建加上选中分割 Nerf 调研
  • Asp.net WebApi 项目示例(增删改查)

    1 WebApi是什么 ASP NET Web API 是一种框架 xff0c 用于轻松构建可以由多种客户端 xff08 包括浏览器和移动设备 xff09 访问的 HTTP 服务 ASP NET Web API 是一种用于在 NET Fra
  • C# 多线程 用委托实现异步_调用委托的BeginInvoke和EndInvoke方法

    1 C 中的每一个委托都内置了BeginInvoke和EndInvoke方法 xff0c 如果委托的方法列表里只有一个方法 xff0c 那么这个方法就可以异步执行 xff08 不在当前线程里执行 xff0c 另开辟一个线程执行 xff09
  • Vue2 模板template的四种写法

    lt div id 61 34 app 34 gt lt h1 gt 我是直接写在构造器里的模板1 lt h1 gt lt div gt lt template id 61 34 demo3 34 gt lt h1 style 61 34
  • 关于onNewIntent的使用

    摘自 http blog sina com cn s blog 5da93c8f0101hnzx html 当从栈中启动一个已经存在的Activity时 xff0c 系统不会再执行onCreate方法 xff0c 而是执行onNewInte
  • android 使用log4j SLF4J 输出日志到文件中

    android的logcat在写代码的时候挺好用 xff0c 但是在现网环境中缺乏有效的手段将日志实时的打印到文件中 xff0c 在出现问题的时候可以获取第一手的信息 其实logcat中内容也不是完全不能获取 xff0c 下面提供获取的方法