高效APP之打印Log
来源:互联网 发布:单片机外部存储器 编辑:程序博客网 时间:2024/05/22 17:29
日志把我APP运行的一项非常有用的工具。
日志工具和统计工具也许存在着一些微妙的区别。统计工具可以认为是日志整理过得结果。任何被统计的对象都必须被日志记录。
然而,统计结果依赖于公开的主要数据,日志通过不同层次为追踪APP行为提供了详细信息。由于日志一般贯穿整个APP的生命周期,统计被添加到关注点的特定对话中。
统计信息被发送到服务器,然而日志是存在设备本地。
对于日志打印,我们接下来使用CocoaLumberjack,用CocoaPods 来管理。
Example 1. Podfile configuration for CocoaLumberjack
pod'CocoaLumberjack','~> 3.2.0'
CocoaLumberjack 是一个抑郁扩展的框架,她能够满足将信息发送到不同的目标设备中。比如,使用DDASLLogger 日志会被记录在苹果系统日志里,使用DDFileLogger 将日志存储在本地。在APP启动的时候,可以配置不同的输出目标对象。
DDLog 宏被用于打印一个特定的层次。层次越高,信息也重要。最高层是错误层(Error),最低层是可视层(Verbose)。哪种信息被打印可以通过设置最低层次(minimum level)来配置
层次宏:DDLogError: 指不可恢复的错误DDLogWarn: 指可恢复的错误DDLogInfo: 指没有错误的信息DDLogDebug: 通常是与调试相关的信息DDLogVerbose: 提供绝大部分细节,主要用于跟踪控制执行流
Example 2. Configuring and using CocoaLumberjack
//Using logger in some file#if WFDEBUGstatic const DDLogLevel ddLogLevel = DDLogLevelVerbose;#elif WFRELEASEstatic const DDLogLevel ddLogLevel = DDLogLevelDebug;#elsestatic const DDLogLevel ddLogLevel = DDLogLevelWarn;#endif//Setup-(void)setupLogger { [DDLog addLogger:[DDASLLogger sharedInstance]]; // TTY = Xcode console#if WFDEBUG [DDLog addLogger:[DDASLLogger sharedInstance]]; // ASL = Apple System Logs#endif DDFileLogger *fileLogger = [[DDFileLogger alloc] init]; // File Logger fileLogger.rollingFrequency = 60 * 60 * 24; // 24 hour rolling fileLogger.logFileManager.maximumNumberOfLogFiles = 7; [DDLog addLogger:fileLogger];}-(void)someMethod { DDLogVerbose(@"someMethod has started execution"); DDLogError(@"Ouch! Error state. Don't know what to do"); DDLogVerbose(@"someMethod has reached its end state");}
1 通常在application:didFinishLaunchingWi thOptions:. 里调用此方法
2 当连到xcode ,只有在debug模式才会输出到系统日志里
文档日志,配置成24小时最大7个文件。
注册Logger
配置Log Level.
输入log
AppDelegate 完整的例子:
#import "AppDelegate.h"#import <CocoaLumberjack/CocoaLumberjack.h>#import <CocoaLumberjack/DDTTYLogger.h>@interface AppDelegate ()@end//Using logger in some file#if WFDEBUGstatic const DDLogLevel ddLogLevel = DDLogLevelVerbose;#elif WFRELEASEstatic const DDLogLevel ddLogLevel = DDLogLevelDebug;#elsestatic const DDLogLevel ddLogLevel = DDLogLevelWarn;#endif@implementation AppDelegate- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { [self setupLogger]; // setup logger [self someMethod]; // logger in file return YES;}//Setup-(void)setupLogger { [DDLog addLogger:[DDASLLogger sharedInstance]]; // TTY = Xcode console#if WFDEBUG [DDLog addLogger:[DDASLLogger sharedInstance]]; // ASL = Apple System Logs#endif DDFileLogger *fileLogger = [[DDFileLogger alloc] init]; // File Logger fileLogger.rollingFrequency = 60 * 60 * 24; // 24 hour rolling fileLogger.logFileManager.maximumNumberOfLogFiles = 7; [DDLog addLogger:fileLogger];}-(void)someMethod { DDLogVerbose(@"someMethod has started execution"); DDLogError(@"Ouch! Error state. Don't know what to do"); DDLogVerbose(@"someMethod has reached its end state");}@end
如果设置时遇到这样的情况
记着设置
- 高效APP之打印Log
- andriod之log打印
- JNI编程之打印log
- Android Lib层打印log之------bionic库打印log
- Android Lib层打印log之------bionic库打印log
- logcat 命令行只打印某个 app 的 log
- android app崩溃log抓取,打印在本地
- android ndk 入门之打印log信息
- android ndk 入门之打印log信息
- rk3288之释放打印log的串口
- 打印LOG
- 打印log
- Log打印
- log打印
- 打印 Log
- 打印Log
- Android之JNI打印调试信息-LOG打印
- App运营推广之高效方式
- 树的相关知识
- hibernate的悲观锁与乐观锁实现
- 经典问题1:使用java语言打印菱形
- SNG mini项目总结
- 自用基础2
- 高效APP之打印Log
- 安装QNX开发环境
- android广播
- idea中Maven项目缓存(redis)与加密(MD5)
- 局部变量和全局变量以及成员变量的区别
- 用Servlet实现简单的网站登录
- 浏览器调试匿名函数
- 使用Kotlin实现Android简单Demo,对比JAVA实现分析具体语法不同之处(一)
- c++实现洗牌