log日志重定向
Posted zzlei
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了log日志重定向相关的知识,希望对你有一定的参考价值。
1、重定向:
我们在使用NSLog(@"hahaha") 时,实质是将“hahaha”写入到一个系统默认位置的log文件中,然后控制台通过实时获取这个文件的内容进行显示打印信息。
但有时我们希望不需要链接xcode在手机上直接查看日志信息,这个时候我们就需要将log日志的位置调整到我们想要的指定位置。
好处:
这样调整的好处是我们可以自定义一个textview来读取log日志内容,通过某种方式触发(比如摇晃),来将实时的日志直接像是到手机上。
也可以通过后台接口上传log日志,收集log信息。
坏处:
一旦log日志重定向后,在链接xcode进行调试时,xcode就不会再打印log信息。(我猜测应该是xcode找不到log日志文件了)
但是可以通过关闭重定向代码,重新编译让其恢复原来的位置,这样xcode就可以再次显示log日志内容了。
2、方法:
NSArray *path = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSString *document = [path objectAtIndex:0]; NSString *fileName = [NSString stringWithFormat:@"drz.log"]; NSString *logPath = [document stringByAppendingPathComponent:fileName]; NSFileManager *defaulManager = [NSFileManager defaultManager]; [defaulManager removeItemAtPath:logPath error:nil]; freopen([logPath cStringUsingEncoding:NSASCIIStringEncoding], "a+", stdout);//log freopen([logPath cStringUsingEncoding:NSASCIIStringEncoding], "a+", stderr);//error
3、写了一个简单的view,通过摇晃启动。(注意:在打正式包前一定要移除或者将启动代码注释掉)ZZLogManager 一个基本的log类,摇晃手机唤醒。
以上是关于log日志重定向的主要内容,如果未能解决你的问题,请参考以下文章