将NSLog输出到指定的.log文件中

log写入文件的方法

- (void)redirectNSlogToDocumentFolder
{
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *documentDirectory = [paths objectAtIndex:0];
    NSDate *date = [NSDate date];
    NSString *fileName = [NSString stringWithFormat:@"/log/%@-dr.log",date];// 注意不是NSData!
    NSString *logFilePath = [documentDirectory stringByAppendingPathComponent:fileName];
    NSLog(@"logFilePath:%@",logFilePath);
    // 将log输入到文件
    freopen([logFilePath cStringUsingEncoding:NSASCIIStringEncoding], "a+", stdout);
    freopen([logFilePath cStringUsingEncoding:NSASCIIStringEncoding], "a+", stderr);
}

调用方法

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    [self redirectNSlogToDocumentFolder];
        return YES;
}

真机打开文件共享

参考来自以下链接:
1.http://blog.csdn.net/yhawaii/article/details/7785569
2.https://support.apple.com/zh-cn/HT201301

1.在应用程序的Info.plist文件中添加UIFileSharingEnabled键,并将键值设置为YES。
2.将您希望共享的文件放在应用程序的Documents目录。
3.一旦设备插入到用户计算机,iTunes 就会在选中设备的Apps标签中显示一 个文件共享区域。
4.此后,用户就可以向该目录添加文件或者将文件移动到桌面计算机中。

.log文件位置

下面代码打印得到的字符串就是.log文件的路径
NSLog(@"logFilePath:%@",logFilePath);

1.模拟器得到的路径类似下面的
/Users/pc/Library/Developer/CoreSimulator/Devices/FEA4ABBD-3EED-4904-8376-A46083E2CFE1/data/Containers/Data/Application/B80D7464-4B62-4086-8262-1763BD91FB3C/Documents/log/2017-04-19 02:30:25 +0000-dr.log

2.真机得到的路径类似下面的

3.模拟器.log文件打开方式
打开Finder,按下键盘上的command + shift + g 三个按键然后将得到的.log文件路径复制进去然后回车就可以看到.log文件了

将NSLog输出到指定的.log文件中_第1张图片
第一步:按下键盘上的command + shift + g 三个按键
将NSLog输出到指定的.log文件中_第2张图片
第二步:将得到的.log文件路径复制进去然后回车
将NSLog输出到指定的.log文件中_第3张图片
第三步:就可以看到.log文件了

4.真机.log文件打开方式请参考【真机打开文件共享】中的链接2

.log文件可以直接双击打开

默认使用下面系统自带的软件打开

将NSLog输出到指定的.log文件中_第4张图片
系统自带控制台软件

参考链接:http://blog.sina.com.cn/s/blog_a573f7990102uzt9.html

你可能感兴趣的:(将NSLog输出到指定的.log文件中)