当前位置: 首页 > article >正文

Android 还在使用LogCat打日志?XLog框架;日志打印到控制台,打印到文件中。

目录:

  1. 为什么要打印日志?
  2. XLog是什么
  3. XLog如何使用

一、为什么要打印日志?

日志是我们系统出现错误时,最快速有效的定位工具,没有日志给出的错误信息,遇到报错你就会一脸懵逼;而且日志还可以用来记录业务信息,比如记录用户执行的每个操作,不仅可以用于分析改进系统,同时在遇到非法操作时,也能很快找到凶手。

在学习日志记录之前,很多同学应该是通过 Log.d 或者System.out.println 输出信息来调试程序的,简单方便。

但是,System.out.println 存在很严重的问题!首先,System.out.println 是一个同步方法,每次调用都会导致 I/O 操作,比较耗时,频繁使用甚至会严重影响应用程序的性能,所以不建议在生产环境使用。此外,它只能输出简单的信息到标准控制台,无法灵活设置日志级别、格式、输出位置等。

所以我们一般会选择专业的日志框架或工具库,比如 XLog、Timber和Logger这里我们主要讲解XLog,因为它用起来很快速很便捷,比如日志记录到文件,只需要配置参数,就可以使用这个功能,非常的人性化。

在这里插入图片描述


二、XLog是什么

框架链接:https://github.com/elvishew/xLog
在这里插入图片描述

轻量、美观强大、可扩展的 Android 和 Java 日志库,可同时将日志打印在如 Logcat、Console 和文件中。如果你愿意,你可以将日志打印到任何地方。

可以看到XLog能解决的问题:

  1. 将内容记录到文件中。
  2. 内容方面也会帮助我们进行优化,比如对配置进行优化,就可以自动加上时间。
  3. 也可以自定义文件的存活时间,超过了则自动删除。
  4. 还可以限制每个文件的大小。

三、XLog如何使用

1、依赖

implementation 'com.elvishew:xlog:1.11.1'

2、配置和初始化

xLog 具有高度可扩展性,几乎任何一个组件都是可配置的。
比如我们想配置,log日志记录到哪个目录;每个文件最大容量是多少;可以自定义存活时间等等。在Application中进行初始化。

val config = LogConfiguration.Builder()
            .logLevel(LogLevel.ALL)// 指定日志级别,低于该级别的日志将不会被打印,默认为 LogLevel.ALL
            .tag("Snow cone")// 指定 TAG
            .xmlFormatter(DefaultXmlFormatter())// 指定 XML 格式化器,默认为 DefaultXmlFormatter
            .stackTraceFormatter(DefaultStackTraceFormatter())// 指定调用栈信息格式化器
            .build();

        val androidPrinter =
            AndroidPrinter(true)

        val logFolder =
            Environment.getExternalStorageDirectory().path.toString() + "/android_log"

        val filePrinter = FilePrinter.Builder(logFolder)
            .fileNameGenerator(DateFileNameGenerator())//日志文件名格式
            .backupStrategy(FileSizeBackupStrategy((50 * 1024 * 1024).toLong()))//单个日志文件的大小默认:FileSizeBackupStrategy(1024 * 1024) 50MB
            .cleanStrategy(FileLastModifiedCleanStrategy(7L * 24L * 60L * 60L * 1000L))//日志文件存活时间,单位毫秒 7天
            .flattener(ClassicFlattener())//配置写入文件日志格式:年月日时分秒
            .writer(SimpleWriter())//配置了writer才支持日志写文件
            .build()

        XLog.init(config, androidPrinter, filePrinter)

3、在Activity中进行使用

XLog.d("测试 xlog 日志框架1")

4、日志文件内容如下:

(1)文件路径
在这里插入图片描述
(2)点击文件

在这里插入图片描述
(3)文件内容

在这里插入图片描述

好了,这篇文章就介绍到这里~,我是前期后期,如果你也有日志相关的经验分享,也可以在评论区讨论哦,我们下一篇文章再见。


http://www.kler.cn/a/428921.html

相关文章:

  • 最新版Edge浏览器加载ActiveX控件技术——allWebPlugin中间件之awp_CreateActiveXObject接口用法
  • 统信V20 1070e X86系统编译安装mysql-5.7.44版本以及主从构建
  • Mockito+PowerMock+Junit单元测试
  • 【蜂巢——方向,数学】
  • 企业级NoSQL数据库Redis
  • 快手极速版如何查找ip归属地?怎么关掉
  • ES(elasticsearch)整合Spring boot使用实例
  • C—初阶结构体
  • 第23周:机器学习及文献阅读
  • 【postgresql初级使用】在表的多个频繁使用列上创建一个索引,多条件查询优化,多场景案例揭示索引失效
  • WEB_星河飞雪_Windows(全)
  • HCIA-Access V2.5_2_2网络通信基础_TCP/IP模型结构
  • Unity引擎UI滚动列表——滚动复用基础介绍
  • Javascript Clipper library, v6(介绍目录)
  • 六、隐语PIR功能及使用介绍
  • 漫画之家:基于Spring Boot的漫画社交网络平台
  • C# WPF抽奖程序
  • 如何在UI自动化测试中创建稳定的定位器?
  • 笔记:在WPF中BitmapSource都有哪些派生类,他们主要功能,使用方法,使用场景
  • SpringBoot实现前后端传输加密设计
  • php项目的sdk封装成composer包的创建与发版
  • 【光电融合集成电路制造与封测】第四讲:扩散工艺,扩散的类型,恒定表面源扩散,限定表面源扩散,硼扩散
  • 分享一个您在汽车软件安全性测试中发现严重漏洞的案例,以及如何处理
  • 30天学会Go--第6天 GO语言 RESTful API 学习与实践
  • Tomcat(基础篇)
  • <router-view> 中key和name属性的用法详解以及案例