ios真机运行时保存日志并输出

2024-09-02 18:18

本文主要是介绍ios真机运行时保存日志并输出,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

(断开xcode进行真机测试时,无法通过xcode看到运行日志)

方法:

1、在AppDelegate.m中,当app启动时加入redirectNSLogToDocumentFolder方法:在这里插入图gg片描述该方法具体实现:

- (void)redirectNSLogToDocumentFolder
{//如果已经连接Xcode调试则不输出到文件if(isatty(STDOUT_FILENO)) {return;}UIDevice *device = [UIDevice currentDevice];if([[device model] hasSuffix:@"Simulator"]){ //在模拟器不保存到文件中return;}//获取Document目录下的Log文件夹,若没有则新建NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);NSString *logDirectory = [[paths objectAtIndex:0] stringByAppendingPathComponent:@"Log"];NSFileManager *fileManager = [NSFileManager defaultManager];BOOL fileExists = [fileManager fileExistsAtPath:logDirectory];if (!fileExists) {[fileManager createDirectoryAtPath:logDirectory  withIntermediateDirectories:YES attributes:nil error:nil];}NSDateFormatter *formatter = [[NSDateFormatter alloc] init];[formatter setLocale:[[NSLocale alloc] initWithLocaleIdentifier:@"zh_CN"]];[formatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"]; //每次启动后都保存一个新的日志文件中NSString *dateStr = [formatter stringFromDate:[NSDate date]];NSString *logFilePath = [logDirectory stringByAppendingFormat:@"/%@.txt",dateStr];// freopen 重定向输出输出流,将log输入到文件freopen([logFilePath cStringUsingEncoding:NSASCIIStringEncoding], "a+", stdout);freopen([logFilePath cStringUsingEncoding:NSASCIIStringEncoding], "a+", stderr);
}

2、修改配置文件 修改项目下的Info.plist , 添加UIFileSharingEnabled键,并将键值设置为YES,添加之后, 添加之后会变成 Application supports iTunes file sharing YES:
在这里插入图片描述
3、查看可使用itunes:
在这里插入图片描述

选中Log文件夹,点“存储”,默认以.txt格式保存在“文稿”下
在这里插入图片描述

这篇关于ios真机运行时保存日志并输出的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1130707

相关文章

Python如何精准判断某个进程是否在运行

《Python如何精准判断某个进程是否在运行》这篇文章主要为大家详细介绍了Python如何精准判断某个进程是否在运行,本文为大家整理了3种方法并进行了对比,有需要的小伙伴可以跟随小编一起学习一下... 目录一、为什么需要判断进程是否存在二、方法1:用psutil库(推荐)三、方法2:用os.system调用

Java程序进程起来了但是不打印日志的原因分析

《Java程序进程起来了但是不打印日志的原因分析》:本文主要介绍Java程序进程起来了但是不打印日志的原因分析,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Java程序进程起来了但是不打印日志的原因1、日志配置问题2、日志文件权限问题3、日志文件路径问题4、程序

Java使用SLF4J记录不同级别日志的示例详解

《Java使用SLF4J记录不同级别日志的示例详解》SLF4J是一个简单的日志门面,它允许在运行时选择不同的日志实现,这篇文章主要为大家详细介绍了如何使用SLF4J记录不同级别日志,感兴趣的可以了解下... 目录一、SLF4J简介二、添加依赖三、配置Logback四、记录不同级别的日志五、总结一、SLF4J

Python运行中频繁出现Restart提示的解决办法

《Python运行中频繁出现Restart提示的解决办法》在编程的世界里,遇到各种奇怪的问题是家常便饭,但是,当你的Python程序在运行过程中频繁出现“Restart”提示时,这可能不仅仅是令人头疼... 目录问题描述代码示例无限循环递归调用内存泄漏解决方案1. 检查代码逻辑无限循环递归调用内存泄漏2.

python logging模块详解及其日志定时清理方式

《pythonlogging模块详解及其日志定时清理方式》:本文主要介绍pythonlogging模块详解及其日志定时清理方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地... 目录python logging模块及日志定时清理1.创建logger对象2.logging.basicCo

Qt spdlog日志模块的使用详解

《Qtspdlog日志模块的使用详解》在Qt应用程序开发中,良好的日志系统至关重要,本文将介绍如何使用spdlog1.5.0创建满足以下要求的日志系统,感兴趣的朋友一起看看吧... 目录版本摘要例子logmanager.cpp文件main.cpp文件版本spdlog版本:1.5.0采用1.5.0版本主要

SpringBoot日志配置SLF4J和Logback的方法实现

《SpringBoot日志配置SLF4J和Logback的方法实现》日志记录是不可或缺的一部分,本文主要介绍了SpringBoot日志配置SLF4J和Logback的方法实现,文中通过示例代码介绍的非... 目录一、前言二、案例一:初识日志三、案例二:使用Lombok输出日志四、案例三:配置Logback一

golang 日志log与logrus示例详解

《golang日志log与logrus示例详解》log是Go语言标准库中一个简单的日志库,本文给大家介绍golang日志log与logrus示例详解,感兴趣的朋友一起看看吧... 目录一、Go 标准库 log 详解1. 功能特点2. 常用函数3. 示例代码4. 优势和局限二、第三方库 logrus 详解1.

如何自定义Nginx JSON日志格式配置

《如何自定义NginxJSON日志格式配置》Nginx作为最流行的Web服务器之一,其灵活的日志配置能力允许我们根据需求定制日志格式,本文将详细介绍如何配置Nginx以JSON格式记录访问日志,这种... 目录前言为什么选择jsON格式日志?配置步骤详解1. 安装Nginx服务2. 自定义JSON日志格式各

SpringBoot项目使用MDC给日志增加唯一标识的实现步骤

《SpringBoot项目使用MDC给日志增加唯一标识的实现步骤》本文介绍了如何在SpringBoot项目中使用MDC(MappedDiagnosticContext)为日志增加唯一标识,以便于日... 目录【Java】SpringBoot项目使用MDC给日志增加唯一标识,方便日志追踪1.日志效果2.实现步