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日志重定向的主要内容,如果未能解决你的问题,请参考以下文章

在进程完成之前将日志重定向到文件[重复]

将 feign 和 Ribbon 日志重定向到 log4j2

shell脚本在后台运行以及日志重定向输出

log4cplus使用-日志重定向

Log4Qt快速入门——Log4Qt日志输出重定向源码解析

如何将所有日志从hibernate和spring重定向到log4j2?