轻量级Android和Java日志库—xLog

2022-08-30 0 810

xLog是一个轻量、美观大方、可扩展的 Android 和 Java 日志库,可同时打印日志在如 Logcat、Console 和文件中。

特点:

  • 全局配置(TAG,各种格式化器…)或基于单条日志的配置
  • 支持打印任意对象以及可自定义的对象格式化器
  • 支持打印无限长的日志(没有 4K 字符的限制)
  • XML 和 JSON 格式化输出

轻量级Android和Java日志库—xLog

使用方法:

1、添加依赖

implementation 'com.elvishew:xlog:1.10.1'

2、初始化配置

当初始化时,可以用最简单的方式

XLog.init(LogLevel.ALL);

也可以用高级的方式

LogConfiguration config = new LogConfiguration.Builder().logLevel(BuildConfig.DEBUG ? LogLevel.ALL // 指定日志级别,低于该级别的日志将不会被打印,默认为 LogLevel.ALL: LogLevel.NONE).tag("MY_TAG") // 指定 TAG,默认为 "X-LOG".enableThreadInfo() // 允许打印线程信息,默认禁止.enableStackTrace(2) // 允许打印深度为 2 的调用栈信息,默认禁止.enableBorder() // 允许打印日志边框,默认禁止.jsonFormatter(new MyJsonFormatter()) // 指定 JSON 格式化器,默认为 DefaultJsonFormatter.xmlFormatter(new MyXmlFormatter()) // 指定 XML 格式化器,默认为 DefaultXmlFormatter.throwableFormatter(new MyThrowableFormatter()) // 指定可抛出异常格式化器,默认为 DefaultThrowableFormatter.threadFormatter(new MyThreadFormatter()) // 指定线程信息格式化器,默认为 DefaultThreadFormatter.stackTraceFormatter(new MyStackTraceFormatter()) // 指定调用栈信息格式化器,默认为 DefaultStackTraceFormatter.borderFormatter(new MyBoardFormatter()) // 指定边框格式化器,默认为 DefaultBorderFormatter.addObjectFormatter(AnyClass.class, // 为指定类型添加对象格式化器new AnyClassObjectFormatter()) // 默认使用 Object.toString().addInterceptor(new BlacklistTagsFilterInterceptor( // 添加黑名单 TAG 过滤器"blacklist1", "blacklist2", "blacklist3")).addInterceptor(new MyInterceptor()) // 添加一个日志拦截器.build();Printer androidPrinter = new AndroidPrinter(true); // 通过 android.util.Log 打印日志的打印器Printer consolePrinter = new ConsolePrinter(); // 通过 System.out 打印日志到控制台的打印器Printer filePrinter = new FilePrinter // 打印日志到文件的打印器.Builder("<日志目录全路径>") // 指定保存日志文件的路径.fileNameGenerator(new DateFileNameGenerator()) // 指定日志文件名生成器,默认为 ChangelessFileNameGenerator("log").backupStrategy(new NeverBackupStrategy()) // 指定日志文件备份策略,默认为 FileSizeBackupStrategy(1024 * 1024).cleanStrategy(new FileLastModifiedCleanStrategy(MAX_TIME)) // 指定日志文件清除策略,默认为 NeverCleanStrategy().flattener(new MyFlattener()) // 指定日志平铺器,默认为 DefaultFlattener.writer(new MyWriter()) // 指定日志写入器,默认为 SimpleWriter.build();XLog.init( // 初始化 XLogconfig, // 指定日志配置,如果不指定,会默认使用 new LogConfiguration.Builder().build()androidPrinter, // 添加任意多的打印器。如果没有添加任何打印器,会默认使用 AndroidPrinter(Android)/ConsolePrinter(java)consolePrinter,filePrinter);

3、打印日志

  • 打印简单消息
XLog.d("Hello World");
  • 打印带throwable 的消息,通常用于有异常被抛出时
XLog.e(message, throwable);
  • 支持格式化字符串
XLog.d("你好%s,我今年 %d 岁", "Elvis", 20);
  • 未格式化的 JSON 和 XML 字符串会被自动格式化
XLog.json(JSON_CONTENT);XLog.xml(XML_CONTENT);
  • 支持所有的 Collection 和 Map 类型的数据
XLog.d(array);XLog.d(list);XLog.d(map);
  • 支持直接打印Intent和Bundle对象
XLog.d(intent);XLog.d(bundle);
  • 保存日志到文件

要保存日志到文件,你需要创建一个 FilePrinter

Printer filePrinter = new FilePrinter // 打印日志到文件的打印器.Builder("<日志目录全路径>") // 指定保存日志文件的路径.fileNameGenerator(new DateFileNameGenerator()) // 指定日志文件名生成器,默认为 ChangelessFileNameGenerator("log").backupStrategy(new NeverBackupStrategy()) // 指定日志文件备份策略,默认为 FileSizeBackupStrategy(1024 * 1024).cleanStrategy(new FileLastModifiedCleanStrategy(MAX_TIME)) // 指定日志文件清除策略,默认为 NeverCleanStrategy().flattener(new MyFlattener()) // 指定日志平铺器,默认为 DefaultFlattener.build();

并在初始化时添加它

XLog.init(config, filePrinter);

架构:

轻量级Android和Java日志库—xLog

另外,xLog还支持保存第三方库打印的日志到文件、自定义日志文件名、拦截和过虑日志、自定义日志格式和格式化任意类型的对象等功能。

申明:本文由第三方发布,内容仅代表作者观点,与本网站无关。对本文以及其中全部或者部分内容的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。本网发布或转载文章出于传递更多信息之目的,并不意味着赞同其观点或证实其描述,也不代表本网对其真实性负责。

七爪网 免费源码 轻量级Android和Java日志库—xLog https://www.7claw.com/36581.html

分享免费的开源源码

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务