✔️ Simple, pretty and powerful logger for android
APACHE-2.0 License
Simple, pretty and powerful logger for android
Download
implementation 'com.orhanobut:logger:2.2.0'
Initialize
Logger.addLogAdapter(new AndroidLogAdapter());
And use
Logger.d("hello");
Logger.d("debug");
Logger.e("error");
Logger.w("warning");
Logger.v("verbose");
Logger.i("information");
Logger.wtf("What a Terrible Failure");
String format arguments are supported
Logger.d("hello %s", "world");
Collections are supported (only available for debug logs)
Logger.d(MAP);
Logger.d(SET);
Logger.d(LIST);
Logger.d(ARRAY);
Json and Xml support (output will be in debug level)
Logger.json(JSON_CONTENT);
Logger.xml(XML_CONTENT);
FormatStrategy formatStrategy = PrettyFormatStrategy.newBuilder()
.showThreadInfo(false) // (Optional) Whether to show thread info or not. Default true
.methodCount(0) // (Optional) How many method line to show. Default 2
.methodOffset(7) // (Optional) Hides internal method calls up to offset. Default 5
.logStrategy(customLog) // (Optional) Changes the log strategy to print out. Default LogCat
.tag("My custom tag") // (Optional) Global tag for every log. Default PRETTY_LOGGER
.build();
Logger.addLogAdapter(new AndroidLogAdapter(formatStrategy));
Log adapter checks whether the log should be printed or not by checking this function.
If you want to disable/hide logs for output, override isLoggable
method.
true
will print the log message, false
will ignore it.
Logger.addLogAdapter(new AndroidLogAdapter() {
@Override public boolean isLoggable(int priority, String tag) {
return BuildConfig.DEBUG;
}
});
//TODO: More information will be added later
Logger.addLogAdapter(new DiskLogAdapter());
Add custom tag to Csv format strategy
FormatStrategy formatStrategy = CsvFormatStrategy.newBuilder()
.tag("custom")
.build();
Logger.addLogAdapter(new DiskLogAdapter(formatStrategy));
// Set methodOffset to 5 in order to hide internal method calls
Timber.plant(new Timber.DebugTree() {
@Override protected void log(int priority, String tag, String message, Throwable t) {
Logger.log(priority, tag, message, t);
}
});