android orhanobut logger打印那个类第几行调用log输出,在输出日志上上点击跳转到源代码

https://github.com/maoqis/logger

Logger is a android printing utils , It can print  the calling  method's thread info and formatting json content 。the infos contain line postion,you can point the link to jump。

Logger 是一个 android log 输入库,他能够在输入输出点的方法信息、线程信息、格式化json输入,方法信息中包含行数。还可以从android studio logcat中点击链接跳转到代码行数。

tips:
1. the init method prams is the TAG you want print。defalut value is “PRETTRYLOGGER”;
eg: Logger.init("maoqis"); 
2. you can set the count of you want print stack info above you calling position.
    I debug a demo,found by StackTraceElment to get method infomation

     android orhanobut logger打印那个类第几行调用log输出,在输出日志上上点击跳转到源代码_第1张图片
    
     android orhanobut logger打印那个类第几行调用log输出,在输出日志上上点击跳转到源代码_第2张图片

 the demo  stackoffset is  5 at the Logger.java 49 line. print 3 method above it.
 从堆栈的第三位开始遍历stackTraceElement 发现不是Logger 自己使用的类位置从而找到调用者调用的方法位置。

android orhanobut logger打印那个类第几行调用log输出,在输出日志上上点击跳转到源代码_第3张图片

Logger

Simple, pretty and powerful logger for android

Logger provides :

  • Thread information
  • Class information
  • Method information
  • Pretty-print for json content
  • Pretty-print for new line "\n"
  • Clean output
  • Jump to source

Dependency

repositories {
  // ...
  maven { url "https://jitpack.io" }
}

dependencies {
  compile 'com.github.orhanobut:logger:1.12'
}

Current Log system

Log.d(TAG,"hello");

Logger

Logger.d("hello");
Logger.d("hello %s %d", "world", 5);   // String.format

Usage

Note: Because of the latest changes, Logger.init() must be called once to initiate. This will be fixed in the next version

Logger.d("hello");
Logger.e("hello");
Logger.w("hello");
Logger.v("hello");
Logger.wtf("hello");
Logger.json(JSON_CONTENT);
Logger.xml(XML_CONTENT);

Change TAG

All logs

Logger.init(YOUR_TAG);

Log based

Logger.t("mytag").d("hello");

Settings (optional)

Change the settings with init. This should be called only once. Best place would be in application class. All of them are optional.

Logger
  .init(YOUR_TAG)                 // default PRETTYLOGGER or use just init()
  .methodCount(3)                 // default 2
  .hideThreadInfo()               // default shown
  .logLevel(LogLevel.NONE)        // default LogLevel.FULL
  .methodOffset(2)                // default 0
  .logTool(new AndroidLogTool()); // custom log tool, optional
}

Note: Use LogLevel.NONE for the release versions.

Use another log util instead of android.util.log

  • Implement LogTool
  • set it with init
.logTool(new MyCustomLogTool())

More log samples

Logger.d("hello");
Logger.e(exception, "message");
Logger.json(JSON_CONTENT);

Method info

Observe the caller methods in the order they are invoked and also thread information.

void methodA(){
   methodB();
}
void methodA(){
   Logger.d("hello");
}

Both method information will be shown in the order of invocation.

Change method count (Default: 2)

All logs

Logger.init().setMethodCount(1);

Log based

Logger.t(1).d("hello");

Change method stack offset (Default: 0)

To integrate logger with other libraries, you can set the offset in order to avoid that library's methods.

Logger.init().setMethodOffset(5);

Hide thread information

Logger.init().setMethodCount(1).hideThreadInfo();

Only show the message

Logger.init().setMethodCount(0).hideThreadInfo();

Pretty print json, Logger.json

Format the json content in a pretty way

Logger.json(YOUR_JSON_DATA);

Log exceptions in a simple way

Show the cause of the exception

Logger.e(exception,"message");

Notes

  • Use the filter for a better result

  • Make sure that the wrap option is disabled

你可能感兴趣的:(android orhanobut logger打印那个类第几行调用log输出,在输出日志上上点击跳转到源代码)