Printer
概念
在 PLog 中,每个 Printer 都是一个独立的、具备拦截功能的输出管道。
独立输出
这种管道的独立性体现在:
- 每个管道可以独立输出,这意味着你可以在 LogCat 看日志的同事还写入SD卡某些位置
- 每个管道的输出样式可以自定义,比如在 LogCat 中超长自动换行,而写入文件时就不需要
- 管道间无权获知其他管道的存在,也不能拦截其他管道的输出
拦截本通道的输出
虽然不能拦截其他管道的输出,但是 Printer 可以控制自己的输出。 Printer
继承自 Interceptor 接口,因此你可以使用与 全局拦截器 一样的技术来拦截本通道的输出:
@Override
public boolean onIntercept(int level, String tag, Category category, String msg){
return true;
}
DebugPrinter
只要你引入了核心库,你就可以使用 DebugPrinter
,它用于向标准的 LogCat 中输出日志。 但请注意,如果你从构造函数中传入一个 false,它将永远不输出消息。
如果你添加了 formatter
依赖,它将自动格式化,无需你再做进一步设置。
此外,DebugPrinter
还默认做了换行操作,并解除了 LogCat 超过 4K 字符会自动截断的问题。
FilePrinter
PLog 提供了一个供参考的 FilePrinter
实现,你需要额外添加 依赖 来使用。