Android Studio 3.1 Logger打印日志错乱
2018-08-27 本文已影响173人
言吾許
自从升级AS 3.1 后,Logger打印的日志总是错乱,如下图:
很乱,好看的框框全部错乱了,虽然能看,但是看着别扭,正好今天有时间,就研究一下解决办法,作为开源的框架,出了问题,当然先去github logger 的issue看看有没有这种情况,还真找到了:
类似问题
看了一下,大概意思说这是AS的一个bug,往下看,也给出了解决方法:
自定义log 策略类:
public class LogCatStrategy implements LogStrategy {
@Override public void log(int priority, String tag, String message) {
Log.println(priority, randomKey() + tag, message);
}
private int last;
private String randomKey() {
int random = (int) (10 * Math.random());
if (random == last) {
random = (random + 1) % 10;
}
last = random;
return String.valueOf(random);
}
}
初始化logger:
FormatStrategy formatStrategy = PrettyFormatStrategy.newBuilder()
.showThreadInfo(false)// (Optional) Whether to show thread info or not. Default true
.logStrategy(new LogCatStrategy ())// (Optional) Changes the log strategy to print out. Default LogCat
.methodCount(0)// (Optional) How many method line to show. Default 2
.methodOffset(7) // (Optional) Hides internal method calls up to offset. Default 5
.tag("tag")// (Optional) Global tag for every log. Default PRETTY_LOGGER
.build();
Logger.addLogAdapter(new AndroidLogAdapter(formatStrategy) {
@Override
public boolean isLoggable(int priority, String tag) {
return BuildConfig.DEBUG;
}
});
看一下效果,啥?啥?啥?怎么还是乱糟糟的?难道此路不通?不应该啊
已然乱糟糟的
再去logger 的github首页看看,看到文档里面这个:
文档用法
其中有一个特别关键,logcat的侧边栏 的Use Soft Wraps(当log超出控制台的宽度时候,自动换行) 关掉!
disabled这个选项
再看一下效果,套他猴子的,是不是对的贼齐,舒服啊,**:
完美
另外,这个Use Soft Wraps(自动换行)有个用处是,有时候,我们需要复制打印出的logger,如果有多行,就会把边框框给复制上:
复制上框框
这个时候,把Use Soft Wraps勾上,让他自动换行,再复制,就ok了~
勾选Use Soft Wraps进行log复制
总结:
1、自定义log 策略类,并在初始化的时候加入策略
2、一定要把Use Soft Wraps(自动换行) 关掉!!!!
一定要把Use Soft Wraps(自动换行) 关掉!!!!
一定要把Use Soft Wraps(自动换行) 关掉!!!!
重要的事情说三遍