美文网首页
安卓 ALog 的使用

安卓 ALog 的使用

作者: 树蜂 | 来源:发表于2018-12-23 21:00 被阅读0次

本文是本人在安卓开发中使用 ALog 的笔记,若有误还请指正。
1、简介
2、使用
3、ALog与Logger的对比


1、简介

原先使用Logger

https://github.com/orhanobut/logger

但想要指定日志文件的存放位置都没有,因此在找到ALog后,断然改用ALog

https://github.com/Blankj/ALog

2、使用

在使用前,需要进行配置。
直接使用作者的例子代码

package com.blankj.alog;

import android.app.Application;

import com.blankj.ALog;

import java.util.ArrayList;

/**
 * <pre>
 *     author: Blankj
 *     blog  : http://blankj.com
 *     time  : 2017/04/06
 *     desc  :
 * </pre>
 */
public class ALogApp extends Application {

    private static ALogApp sInstance;

    public static ALogApp getInstance() {
        return sInstance;
    }

    @Override
    public void onCreate() {
        super.onCreate();
        sInstance = this;
        initALog();
    }

    // init it in ur application
    public void initALog() {
        ALog.Config config = ALog.init(this)
                .setLogSwitch(BuildConfig.DEBUG)// 设置 log 总开关,包括输出到控制台和文件,默认开
                .setConsoleSwitch(BuildConfig.DEBUG)// 设置是否输出到控制台开关,默认开
                .setGlobalTag(null)// 设置 log 全局标签,默认为空
                // 当全局标签不为空时,我们输出的 log 全部为该 tag,
                // 为空时,如果传入的 tag 为空那就显示类名,否则显示 tag
                .setLogHeadSwitch(true)// 设置 log 头信息开关,默认为开。该头信息包含从log跳转到源码的链接
                .setLog2FileSwitch(true)// 打印 log 时是否存到文件的开关,默认关
                .setDir("")// 当自定义路径为空时,写入应用的 /cache/log/ 目录中
                .setFilePrefix("alog")// 当文件前缀为空时,默认为 "alog",即写入文件为 "alog-MM-dd.txt"
                .setBorderSwitch(true)// 输出日志是否带边框开关,默认开
                .setSingleTagSwitch(true)// 一条日志仅输出一条,默认开,为美化 AS 3.1 的 Logcat

                // 等级排序:2 VERBOSE -> 3 DEBUG -> 4 INFO -> 5 WARN -> 6 ERROR -> 7 ASSERT
                // 假若Filter设置为 ALog.D ,则 ALog.D 及 ALog.D 后面的等级才会执行
                .setConsoleFilter(ALog.V)// log 的控制台过滤器,和 logcat 过滤器同理,默认 Verbose
                .setFileFilter(ALog.I)// log 文件过滤器,和 logcat 过滤器同理,默认 Verbose
                .setStackDeep(1)// log 栈深度,默认为 1
                .setStackOffset(0)// 设置栈偏移,比如二次封装的话就需要设置,默认为 0
                .setSaveDays(3)// 设置日志可保留天数,默认为 -1 表示无限时长
                // 新增 ArrayList 格式化器,默认已支持 Array, Throwable, Bundle, Intent 的格式化输出
                .addFormatter(new ALog.IFormatter<ArrayList>()
                {
                    @Override
                    public String format(ArrayList list)
                    {
                        return "ALog Formatter ArrayList { " + list.toString() + " }";
                    }
                });
        ALog.d(config.toString());
    }
}

  • ALog.d("debug");

detail
  • ALog.d("customTag", "debug0", "debug1");

args
  • ALog.d(longStr);

long
  • ALog.file(longStr);

file

filecontent
  • ALog.json(json);

json
  • ALog.xml(xml);

xml

3、ALog与Logger的对比

以下优缺点都是相对于两者进行的对比
1)Logger的优缺点

  • 优点:
    可设置多种策略模式,方便的开关不同优先级、tag的日志输出
    会根据日志文件大小,新增日志文件
  • 缺点:
    无法设置日志文本的路径,过期自动删除

2)ALog的优缺点

  • 优点:
    可设置日志路径
    可设置日志的保存日期,过期自动删除
  • 缺点:
    日志文件根据日期生成,假若某天日志很多,则该文件会很大,造成写入较慢
    3)总结:还是log4j2强大(log4j2是一个用在服务器上的log包)

相关文章

网友评论

      本文标题:安卓 ALog 的使用

      本文链接:https://www.haomeiwen.com/subject/tyxokqtx.html