-
Notifications
You must be signed in to change notification settings - Fork 31
DefinePrinter
Muyangmin edited this page Feb 23, 2017
·
1 revision
PLog提供Printer
接口供客户端自行实现,并在默认情况下使用DebugPrinter
。
利用Printer
接口你可以实现的功能:
- 将输出重定向(或者同时输出)到一个自定义的管道,比如日志收集平台;
- 过滤掉某些你不需要的日志;
- 重新设计日志的输出格式(但请注意,如果只是单纯需要改变格式,请尝试使用
Style
接口来满足需求)。
重要提醒:每个Printer之间的拦截(过滤规则)是相互独立的。例如,你可以只上报类型为Crash和Level为WARN以上的日志,但是在Logcat里仍然可以看到全部日志。
DebugPrinter
是内置的默认实现,所有的方法均直接调用android.util.Log
类的对应方法。
如果你的项目添加了plog-formatter
的依赖,会自动使用其中的DefaultFormatter
。
如果需要保存到文件的功能,可以使用plog-printer
依赖中的FilePrinter
类。该类通过HandlerThread
实现了保存到本地文件的功能,可以自定义单个文件的大小、存储路径和命名规则。
注意:如果你希望保存到外部存储路径,请注意是否有对应的写入权限,尤其是Android M以后的动态权限。关于动态权限,请参考官方文档说明。
AbsPrinter
类对Formatter、Style等接口实现了常用的getter/setter接口和maxLength功能,强烈推荐在自定义Printer时优先考虑继承。
当然你也可以直接实现Printer
接口,好处是可以完全精细化控制,但是可能会有代码冗余。请自行斟酌实现。