上一篇我们简单的介绍了一下RoboGuice的使用(【十二】注入框架RoboGuice使用:(Your First Injected ContentProvider)),今天我们来看下Log日志使用。
Android应用通过会使用内置的android.util.log在Android控制台上面打印日志信息。RoboGuice也提供了另外的日志管理,你可能会想要使用。
(一): RoboGuice日志管理和通常的Log差不多,但也同样具备以下优点:
①:对于发布包来说,Debug and verbose日志会自动不显示。
②: 应用程序名字,文件,日志行信息,时间戳,线程以及其他有用信息都会自动记录(为了提高性能其中一些信息可以禁用显示)。 ③:由于使用了可变参数,禁用日志显示提高性能,如果你经常使用debug or verbose logging,这个可以提高性能。
④:你可以在要使用日志的地方进行覆盖写入格式化的日志消息
(二): 一些简单的例子
Ln.v("hello there"); Ln.d("%s %s", "hello", "there"); // varargs Ln.e( exception, "Error during some operation"); // Throwables go at the FRONT! Ln.w( exception, "Error during %s operation", "some other"); Ln.v("hello there, ", "Mr. Invisible"); // ERROR, Mr. Invisible will never display(三):常见的陷进错误
Ln和Log的语法略有基础不同,要注意以下几点:
①:在调用的时候确保首先加入exception信息,一个常见的错误是在最后进行android.util.Log转换, 后边放入varargs parameter。
②:可变长度参数不会添加到日志消息中,你比把%s或者其他类似格式参数插入到日志消息中,如果你忘记该参数将会是失效错误。
(四):改变日志习惯
有些APP可能需要考虑把日志保存到默认位置而不是直接在Android 控制台上面打印。例如:你可能需要把日志保存下来用于异常错误分析。
为此你只需要实现Ln.Print的子类,确定绑定到子模块。需要注意的是Ln不会进行日志回滚的操作,所以当进行写文件的时候要主要设备的存储空间满的情况。你也可以重写Print方法来输出有格式的日志。要记住重写Print方式一个全局的改变,任务依赖Ln日志的代码都会使用这个Print方法。