日志封装

Posted 黄大仙爱编程

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了日志封装相关的知识,希望对你有一定的参考价值。

目前使用的手机不支持显示d和v的log,只能支持显示e、w、i日志,以下是我对log的封装,使用更加方便。

log当中增加当前时间显示,增加开关显示或者隐藏整个log,根据标签或者类别来设置显示或者隐藏log。

public class MyLogcatUtil {

    private static MyLogcatUtil instance = new MyLogcatUtil();

    private String myTag = "myTag";

    private boolean isShowE = true;

    private boolean isShowI = true;

    private boolean isShowW = true;

    private boolean isShow = true;

    private Map<String,String> notShowTagList;

    private MyLogcatUtil(){
        notShowTagList = new HashMap<String,String>();
    }

    public static MyLogcatUtil getInstance(){
        return instance;
    }

    public void elog(String tag , String content){
        if(!isShow){
            return ;
        }
        if(notShowTagList.get(tag)!=null){
            return;
        }
        if(isShowE){
            Log.e(myTag+tag,getTime()+content);
        }
    }

    public void ilog(String tag , String content){
        if(!isShow){
            return ;
        }
        if(notShowTagList.get(tag)!=null){
            return;
        }
        if(isShowI){
            Log.i(myTag+tag,getTime()+content);
        }
    }

    public void wlog(String tag , String content){
        if(!isShow){
            return ;
        }
        if(notShowTagList.get(tag)!=null){
            return;
        }
        if(isShowW){
            Log.w(myTag+tag,getTime()+content);
        }
    }

    public boolean isShowE() {
        return isShowE;
    }

    public void setShowE(boolean showE) {
        isShowE = showE;
    }

    public boolean isShowI() {
        return isShowI;
    }

    public void setShowI(boolean showI) {
        isShowI = showI;
    }

    public String getMyTag() {
        return myTag;
    }

    public void setMyTag(String myTag) {
        this.myTag = myTag;
    }

    public boolean isShowW() {
        return isShowW;
    }

    public void setShowW(boolean showW) {
        isShowW = showW;
    }

    public boolean isShow() {
        return isShow;
    }

    public void setShow(boolean show) {
        isShow = show;
    }

    public void addNotShowTag(String tag){
        this.notShowTagList.put(tag,tag);
    }

    public String getTime(){
        Date date=new Date();
        DateFormat format=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String time=format.format(date);
        return time;
    }

}

采用单例模式实现,确保设置显示或者隐藏对于整个日志输出有效。

以上是关于日志封装的主要内容,如果未能解决你的问题,请参考以下文章

VSCode自定义代码片段14——Vue的axios网络请求封装

argparse 代码片段只打印部分日志

常用python日期日志获取内容循环的代码片段

回归 | js实用代码片段的封装与总结(持续更新中...)

我的Android进阶之旅NDK开发之在C++代码中使用Android Log打印日志,打印出C++的函数耗时以及代码片段耗时详情

VsCode 代码片段-提升研发效率