Skip to content

DefinePrinter

Muyangmin edited this page Feb 23, 2017 · 1 revision

PLog提供Printer接口供客户端自行实现,并在默认情况下使用DebugPrinter。 利用Printer接口你可以实现的功能:

  • 输出重定向(或者同时输出)到一个自定义的管道,比如日志收集平台;
  • 过滤掉某些你不需要的日志;
  • 重新设计日志的输出格式(但请注意,如果只是单纯需要改变格式,请尝试使用Style接口来满足需求)。

重要提醒:每个Printer之间的拦截(过滤规则)是相互独立的。例如,你可以只上报类型为Crash和Level为WARN以上的日志,但是在Logcat里仍然可以看到全部日志。

DebugPrinter

DebugPrinter是内置的默认实现,所有的方法均直接调用android.util.Log类的对应方法。 如果你的项目添加了plog-formatter的依赖,会自动使用其中的DefaultFormatter

FilePrinter

如果需要保存到文件的功能,可以使用plog-printer依赖中的FilePrinter类。该类通过HandlerThread实现了保存到本地文件的功能,可以自定义单个文件的大小、存储路径和命名规则。

注意:如果你希望保存到外部存储路径,请注意是否有对应的写入权限,尤其是Android M以后的动态权限。关于动态权限,请参考官方文档说明。

完全自定义Printer

AbsPrinter类对Formatter、Style等接口实现了常用的getter/setter接口和maxLength功能,强烈推荐在自定义Printer时优先考虑继承。 当然你也可以直接实现Printer接口,好处是可以完全精细化控制,但是可能会有代码冗余。请自行斟酌实现。