美文网首页
安卓 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