1. 程式人生 > >Logger日誌列印

Logger日誌列印

Logger的使用:

新增依賴:

compile 'com.orhanobut:logger:1.15'

初始化logger  預設tag = PRETTYLOGGER  Logger.init();

初始化logger 自定義TAG Logger.init(TAG);

Logger

  // 設定Log的TAG值,預設值為 PRETTYLOGGER,也可自 定義   .init(LOG_TAG)      

  // 設定Log中呼叫堆疊的函式行數,預設值為 2,即顯示2層           .methodCount(3)     

  // 隱藏Log中的執行緒資訊,預設值為 shown,即顯示執行緒資訊             .hideThreadInfo()      

 // 設LogLevel.FULL,即Log全輸出,LogLevel.NONE即無Log輸出          .logLevel(LogLevel.NONE)   ;    

Logger.d("hello"); Logger.e("hello"); Logger.w("hello"); Logger.v("hello"); Logger.wtf("hello");

Logger.json(JSON_CONTENT); // 支援 json Logger.xml(XML_CONTENT); // 支援 xml Logger.log(DEBUG, "tag", "message", throwable);

Logger.d("hello %s", "world"); // 支援 String 格式化引數

Logger.i("大家好,我叫%s,今年%d,很高興大家來看我的文章!!!", "Jerry", 18);

Logger.w("我是%s班級的,我今年%d歲,我有%f元", a, b, 3.5);

Logger.d(list); // 支援 List Logger.d(map); // 支援 Map Logger.d(set); // 支援 Set Logger.d(new String[]); // 支援 Array

Logger.t("mytag").d("hello"); // 改變一次 TAG Logger.e(exception, "message");

Logger.init("tag")

        //可以控制Log的位置的方法數量,可以為0

        .methodCount(0)

        //設定是否列印log

        .logLevel(LogLevel.FULL)

        //隱藏執行緒資訊

       .hideThreadInfo();

//可以列印異常

Logger.e(new Exception("我是錯誤"),"我是對這個錯誤的描述"

LoggerDemo
1、在清單檔案中新增依賴:
compile 'com.android.support:appcompat-v7:26.+'
compile 'com.android.support.constraint:constraint-layout:1.0.2'
testCompile 'junit:junit:4.12'
compile 'com.orhanobut:logger:1.15'compile 'com.tencent.bugly:crashreport:latest.release'
UserInfo 
public class UserInfo {
    public String name ;

    public UserInfo(String name) {
        this.name = name;
    }

    @Override
public String toString() {
        return "UserInfo{" +
                "name='" + name + '\'' +
                '}';
    }

}

public class MyCaughtException implements Thread.UncaughtExceptionHandler {

    @Override
public void uncaughtException(Thread t, Throwable e) {
        Logger.i("MyCaughtException  uncaughtException ");

        //// TODO:  拿異常資訊
//拿裝置資訊
        //// TODO:  將資訊上傳到伺服器
}

}

public class MyApplication extends Application {
    @Override
public void onCreate() {
        super.onCreate();
        Logger.init("tag")
                //可以控制Log的位置的方法數量,可以為0
.methodCount(2)
                //設定是否列印log
.logLevel(LogLevel.FULL)
                //隱藏執行緒資訊
.hideThreadInfo();

        CrashReport.initCrashReport(getApplicationContext(), "a0f5f4563e", false);

        MyCaughtException myCaughtException = new MyCaughtException();

        //把我們的捕捉異常的類,設定給應用
Thread.setDefaultUncaughtExceptionHandler(myCaughtException);

    }

}

public class MainActivity extends AppCompatActivity {

    @Override
protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);


        Log.i("tag", "我是1511k---Log");
        Logger.i("我是1511k---Logger");

        //可以按照某種格式去列印log
Logger.i("我是%s的%s同學,我今年%d歲了", "1510B", "banzhang", 25);


        //支援列印數值型別
Log.i("tag", 1000 + "");
        Logger.d(1000);

        //支援列印物件
Logger.d(new UserInfo("wang"));

        //支援列印陣列和集合
ArrayList<UserInfo> userInfos = new ArrayList<>();
        UserInfo wang = new UserInfo("wang");
        UserInfo li = new UserInfo("li");
        userInfos.add(wang);
        userInfos.add(li);

        Logger.d(userInfos);

        //列印json資料
JSONObject jsonObject = new JSONObject();
        try {
            jsonObject.put("mobile", "15501186623");
            jsonObject.put("password", "123456");
            jsonObject.put("mobile1", "15501186623");
            jsonObject.put("password1", "123456");
            jsonObject.put("mobile2", "15501186623");
            jsonObject.put("password2", "123456");
        } catch (JSONException e) {
            e.printStackTrace();
        }
        String json = jsonObject.toString();

        Log.i("tag", json);
        Logger.json(json);


        //Logger自定義臨時的tag
Logger.t("tag").i("我是一個自定義tag的Logger日誌");

        //Logger可以顯示當前的執行緒名字
new Thread(new Runnable() {
            @Override
public void run() {
                //Logger自定義臨時的tag
Logger.t("tag").i("我是一個自定義tag的Logger日誌");
            }
        }).start();

        //可以列印異常
Logger.e(new Exception("我是錯誤"), "我是對這個錯誤的描述");
    }

    public void onclick(View view) {
        TextView textView = null;
        textView.setText("dfdff");
    }
}

相關推薦

Logger日誌列印規範

首先來看一下比較常用的Logger日誌級別(部分未列出): error - 執行期錯誤日誌記錄,應該有專門的error日誌檔案。; warn - 警告資訊,如程式呼叫了一個即將作廢的介面,介面的不當使用,執行狀態不是期望的但仍可繼續處理等; info - 有必要的事件資訊記錄。 debug - 除錯資訊,業

Logger 日誌列印庫詳解

一、基本使用 Logger 是一款 Android 平臺上的簡單、優雅、強大的開源日誌庫。 1,Logger 提供了以下方法: 列印執行緒的資訊 列印類的資訊 列印方法的資訊 優雅的列印JSON資料 優雅的列印換行符 列印簡潔的資訊 點選日誌跳轉至原

Logger日誌列印

Logger的使用:新增依賴:compile 'com.orhanobut:logger:1.15'初始化logger  預設tag = PRETTYLOGGER  Logger.init();初始化logger 自定義TAG Logger.init(TAG);Logger 

log4j2列印日誌(包含指定logger特殊列印

log4j2.xml<?xml version="1.0" encoding="UTF-8"?> <Configuration status="WARN"> <Appenders> <Console name=

Logger-功能強大使用方便的Log日誌列印工具類

介紹 Android開發中Log日誌列印對開發者來說是非常重要的功能。但是感覺Log寫多了也是煩,每次都需要設定一個TAG過濾值和具體的列印資訊,而且列印的資訊也不夠豐富。 這裡我推薦一個功能強大的Log日誌列印工具類-Logger。(不是java.util

利用logger攔截列印完整的okhttp網路請求和響應日誌

最近專案中使用的網路請求工具是Retrofit,底層封裝的是OkHttp,通常除錯網路介面時都會將網路請求和響應相關資料通過日誌的形式打印出來。OkHttp也提供了一個網路攔截器okhttp-logging-interceptor,通過它能攔截okhttp網路請求和響應所有相

手機不列印日誌Logger日誌庫的使用

魅族手機預設是不開啟列印高階日誌的。所以有時候你使用一些自定義的log庫看不到輸出日誌。 開啟方式:設定——輔助功能——開發者選項(假如你看不到開發者選項再想辦法)——高階日誌輸出–點選允許全部 華為手機也是不允許列印日誌的這個很奇葩。

【java】java自帶的java.util.logging.Logger日誌功能

lena mat logs pre 默認 closed custom err ole 偶然翻閱到一篇文章,註意到Java自帶的Logger日誌功能,特地來細細的看一看,記錄一下。 1.Java自帶的日誌功能,默認的配置   ①Logger的默認配置,位置在JRE安裝目錄下l

Android Logger日誌系統

chart 入隊 size exceptio 函數定義 詳細 poi exception pointer 文件夾 文件夾 前言 執行時庫層日誌庫liblog 源

logger日誌模塊

bug 日誌文件 AD RR CA handle orm 錯誤日誌 簡單 簡單配合模式: import logging#簡單配置logging.basicConfig(level=logging.DEBUG, format=‘%(asctim

android logger 日誌工具

lan get 日誌 https .net logger ogg oid android l https://github.com/orhanobut/logger 基礎使用:https://blog.csdn.net/github_33304260/article/det

flask自帶的logger日誌工具

flask中自帶的logger日誌工具 flask自帶logger方法(日誌工具),使用格式為 from flask import current_app current_app.logger.error(‘this is a error’) current_app.logger.i

log4j日誌列印

    最近在分析專案響應時延時,使用了很多列印日誌的技巧,下面總結一下。 1、列印總的日誌。        總日誌是說,在系統出現任何異常或錯誤情況,都將異常列印到固定檔案中。實現方式:      

關於log4j日誌列印堆疊的記錄

----遇到的一個日誌的問題,與這位同學遇到的差不多,遂轉載 轉自: https://blog.csdn.net/weiweiai123456/article/details/72864838 記錄下日誌小細節,逗號和加號在日誌檔案裡的區別   引入jar包:

AOP在專案方法日誌列印方面的應用

@Aspect @Component public class WebLogAspect { private static Logger logger = org.apache.log4j.LogManager.getLogger(WebLogAspect.class.getName()); /

Linux下tomcat日誌列印和傳參亂碼問題

             當前環境: Linux核心:Ubuntu(烏班圖) SSH連線工具:SecureCRT   1、首先確認Linux系統編碼: Linux命令:locale 若查詢結果不是zh_CN.UTF-8,則修改

get、post同步非同步請求---Log日誌列印

package wanghuiqi.bawie.com.get_asyn; import android.app.DownloadManager; import android.os.Build; import android.os.Bundle; import android.supp

logback 列印mybatis sql mybatis 日誌列印sql語句和返回結果

logback 列印sql語句: 在logback日誌檔案中開啟debug模式 <logger name="com.ibatis" level="DEBUG" /> <logger name="com.ibatis.common.jdbc.SimpleDataSource"

Scala日誌列印

基於scala-logging和logback的日誌列印模板,其中logback是一個更高效/更優於log4j的日誌列印框架,目前正逐漸替代log4j的位置,以下為實現日誌列印的幾個步驟: 1. 新增依賴 以maven為例: <dependency> <g

Logger日誌

日誌體系 log4j log4j2(mybatis用到) jul (javautillogging,spring用到) logback(springboot用到) jcl(commons-logging) 抽象日誌。 "org.apache.commons.logging.imp