Android开发规范:日志Log

2018-11-27 20:50:00.614 29110-29110/com.demo D/ActivityThread: Added TimaKeyStore provider

格式:timestamp PID TID log-level log-tag

| timestamp | PID | TID | package name | log-level | log-tag |

| — | — | — | — | — | — |

| 时间戳 | 进程id | 线程id | 包名 | 日志类型 | 日志tag |

2. 改进的Log工具


系统提供的日志虽然已经具备了基本的信息,但是我们可以改进现有的Log功能。

比如提供Log打印类名、方法名、行数。

这样我们直接Ctrl + L输入行数就可以跳转到Log输出的位置,加快问题定位速度。

public class LogUtil {

public static String customTagPrefix = “ddnosh”;

private static final boolean isDebug=true;

private LogUtil() {

}

private static String generateTag() {

StackTraceElement caller = new Throwable().getStackTrace()[2];

String tag = “%s.%s(Line:%d)”;

String callerClazzName = caller.getClassName();

callerClazzName = callerClazzName.substring(callerClazzName.lastIndexOf(“.”) + 1);

tag = String.format(tag, callerClazzName, caller.getMethodName(), caller.getLineNumber());

tag = TextUtils.isEmpty(customTagPrefix) ? tag : customTagPrefix + “:” + tag;

return tag;

}

public static void d(String content) {

if (!isDebug) return;

String tag = generateTag();

Log.d(tag, content);

}

public static void d(String content, Throwable tr) {

if (!isDebug) return;

String tag = generateTag();

Log.d(tag, content, tr);

}

public static void e(String content) {

if (!isDebug) return;

String tag = generateTag();

Log.e(tag, content);

}

public static void e(String content, Throwable tr) {

if (!isDebug) return;

String tag = generateTag();

Log.e(tag, content, tr);

}

public static void i(String content) {

if (!isDebug) return;

String tag = generateTag();

Log.i(tag, content);

}

public static void i(String content, Throwable tr) {

if (!isDebug) return;

String tag = generateTag();

Log.i(tag, content, tr);

}

public static void v(String content) {

if (!isDebug) return;

String tag = generateTag();

Log.v(tag, content);

}

public static void v(String content, Throwable tr) {

if (!isDebug) return;

String tag = generateTag();

Log.v(tag, content, tr);

}

public static void w(String content) {

if (!isDebug) return;

String tag = generateTag();

Log.w(tag, content);

}

public static void w(String content, Throwable tr) {

if (!isDebug) return;

String tag = generateTag();

Log.w(tag, content, tr);

}

public static void w(Throwable tr) {

总结

最后为了帮助大家深刻理解Android相关知识点的原理以及面试相关知识,这里放上相关的我搜集整理的Android开发中高级必知必会核心笔记,共计2968页PDF、58w字,囊括Android开发648个知识点,我把技术点整理成了视频和PDF(实际上比预期多花了不少精力),包知识脉络 + 诸多细节。

网上学习 Android的资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。希望这份系统化的技术体系对大家有一个方向参考。

2021年虽然路途坎坷,都在说Android要没落,但是,不要慌,做自己的计划,学自己的习,竞争无处不在,每个行业都是如此。相信自己,没有做不到的,只有想不到的。

虽然面试失败了,但我也不会放弃入职字节跳动的决心的!建议大家面试之前都要有充分的准备,顺顺利利的拿到自己心仪的offer。

加入社区》https://bbs.youkuaiyun.com/forums/4304bb5a486d4c3ab8389e65ecb71ac0
考。

2021年虽然路途坎坷,都在说Android要没落,但是,不要慌,做自己的计划,学自己的习,竞争无处不在,每个行业都是如此。相信自己,没有做不到的,只有想不到的。

虽然面试失败了,但我也不会放弃入职字节跳动的决心的!建议大家面试之前都要有充分的准备,顺顺利利的拿到自己心仪的offer。

加入社区》https://bbs.youkuaiyun.com/forums/4304bb5a486d4c3ab8389e65ecb71ac0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值