Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在IOS中本地写入文件中的所有日志(崩溃除外)?_Ios_Debugging_Logging - Fatal编程技术网

如何在IOS中本地写入文件中的所有日志(崩溃除外)?

如何在IOS中本地写入文件中的所有日志(崩溃除外)?,ios,debugging,logging,Ios,Debugging,Logging,我想将所有日志写入一个文件,并需要导出以便在IOS中进行故障排除和调试?有一些第三方库,CocoaLumberjack就是其中之一。要使用CocoaLumberjack,您可以使用cocoapods安装它。 在终端中写入并输入以下命令以安装CoCoapod: sudo gem install cocoapods 然后从终端转到项目目录,您的“ProjectName.xcodeproj”位于该目录下。 现在从终端使用以下命令创建pod文件: pod init 然后使用文本编辑打开pod文件,并

我想将所有日志写入一个文件,并需要导出以便在IOS中进行故障排除和调试?

有一些第三方库,CocoaLumberjack就是其中之一。要使用CocoaLumberjack,您可以使用cocoapods安装它。 在终端中写入并输入以下命令以安装CoCoapod:

sudo gem install cocoapods
然后从终端转到项目目录,您的“ProjectName.xcodeproj”位于该目录下。 现在从终端使用以下命令创建pod文件:

pod init
然后使用文本编辑打开pod文件,并在结束前添加“pod‘CocoaLumberjack/Swift’”。它将如下所示:

# Uncomment the next line to define a global platform for your project
# platform :ios, '9.0'

target ’YOUR_TARGETNAME’ do
  # Comment the next line if you don't want to use dynamic frameworks
  use_frameworks!

  pod 'CocoaLumberjack/Swift'

end
现在从终端运行以下命令:

pod install
如果cocoalamberjack安装成功,则“退出”您的Xcode并打开名为“ProjectName.xcworkspace”而不是“ProjectName.xcodeproj”的文件 然后首先构建项目

然后在您的文件中导入CocoaLumberjack(我在ViewController中这样做了)

然后在viewDidLoad()中,我添加了记录器:

DDLog.add(DDOSLogger.sharedInstance) // Uses os_log

let fileLogger: DDFileLogger = DDFileLogger() // File Logger
fileLogger.rollingFrequency = 60 * 60 * 24 // 24 hours
fileLogger.logFileManager.maximumNumberOfLogFiles = 7
DDLog.add(fileLogger)
DDLogVerbose("log from viewDidLoad")

CocoaLumberjack的详细文档是

有一些第三方库,CocoaLumberjack就是其中之一。要使用CocoaLumberjack,您可以使用cocoapods安装它。 在终端中写入并输入以下命令以安装CoCoapod:

sudo gem install cocoapods
然后从终端转到项目目录,您的“ProjectName.xcodeproj”位于该目录下。 现在从终端使用以下命令创建pod文件:

pod init
然后使用文本编辑打开pod文件,并在结束前添加“pod‘CocoaLumberjack/Swift’”。它将如下所示:

# Uncomment the next line to define a global platform for your project
# platform :ios, '9.0'

target ’YOUR_TARGETNAME’ do
  # Comment the next line if you don't want to use dynamic frameworks
  use_frameworks!

  pod 'CocoaLumberjack/Swift'

end
现在从终端运行以下命令:

pod install
如果cocoalamberjack安装成功,则“退出”您的Xcode并打开名为“ProjectName.xcworkspace”而不是“ProjectName.xcodeproj”的文件 然后首先构建项目

然后在您的文件中导入CocoaLumberjack(我在ViewController中这样做了)

然后在viewDidLoad()中,我添加了记录器:

DDLog.add(DDOSLogger.sharedInstance) // Uses os_log

let fileLogger: DDFileLogger = DDFileLogger() // File Logger
fileLogger.rollingFrequency = 60 * 60 * 24 // 24 hours
fileLogger.logFileManager.maximumNumberOfLogFiles = 7
DDLog.add(fileLogger)
DDLogVerbose("log from viewDidLoad")

CocoaLumberjack的详细文档是通过OS_日志记录并重定向到文件的

//objective c code
#import <os/log.h>

//insert below lines in didFinishLaunchingWithOptions
//this will create a log file when your application is opened in documents directory with the file name of timestamp when app is opened
    NSString *documentsDirectory = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES) objectAtIndex:0];
    NSString *fileName =[NSString stringWithFormat:@"%@.log",[NSDate date]];
    NSString *logFilePath = [documentsDirectory stringByAppendingPathComponent:fileName];
    freopen([logFilePath cStringUsingEncoding:NSASCIIStringEncoding],"a+",stderr); //this will create/open a file in append mode and redirect the console logs to it


//below are example how to write logs with os_log 
    os_log_info(os_log_create("com.my.app", "application"), " custom info log"); // for log level : info , similarily there are functions like os_log_error, os_log_debug etc
    os_log(OS_LOG_DEFAULT, "default custom log"); 
//目标c代码
#进口
//在didFinishLaunchingWithOptions中插入以下行
//当应用程序在documents目录中打开时,这将创建一个日志文件,文件名为timestamp(当应用程序打开时)
NSString*documentsDirectory=[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES)对象索引:0];
NSString*文件名=[NSString stringWithFormat:@“%@.log”,[NSDate date]];
NSString*logFilePath=[DocumentsDirectoryStringByAppendingPathComponent:fileName];
freopen([logFilePath cStringUsingEncoding:NSASCIIStringEncoding],“a+”,stderr)//这将以追加模式创建/打开文件,并将控制台日志重定向到该文件
//下面是如何使用os_日志写入日志的示例
操作系统日志信息(操作系统日志创建(“com.my.app”、“应用程序”)、“自定义信息日志”);//对于日志级别:info,类似地,也有诸如os_log_error、os_log_debug等功能
操作系统日志(操作系统日志默认值,“默认自定义日志”);

通过操作系统日志记录并将其重定向到文件

//objective c code
#import <os/log.h>

//insert below lines in didFinishLaunchingWithOptions
//this will create a log file when your application is opened in documents directory with the file name of timestamp when app is opened
    NSString *documentsDirectory = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES) objectAtIndex:0];
    NSString *fileName =[NSString stringWithFormat:@"%@.log",[NSDate date]];
    NSString *logFilePath = [documentsDirectory stringByAppendingPathComponent:fileName];
    freopen([logFilePath cStringUsingEncoding:NSASCIIStringEncoding],"a+",stderr); //this will create/open a file in append mode and redirect the console logs to it


//below are example how to write logs with os_log 
    os_log_info(os_log_create("com.my.app", "application"), " custom info log"); // for log level : info , similarily there are functions like os_log_error, os_log_debug etc
    os_log(OS_LOG_DEFAULT, "default custom log"); 
//目标c代码
#进口
//在didFinishLaunchingWithOptions中插入以下行
//当应用程序在documents目录中打开时,这将创建一个日志文件,文件名为timestamp(当应用程序打开时)
NSString*documentsDirectory=[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES)对象索引:0];
NSString*文件名=[NSString stringWithFormat:@“%@.log”,[NSDate date]];
NSString*logFilePath=[DocumentsDirectoryStringByAppendingPathComponent:fileName];
freopen([logFilePath cStringUsingEncoding:NSASCIIStringEncoding],“a+”,stderr)//这将以追加模式创建/打开文件,并将控制台日志重定向到该文件
//下面是如何使用os_日志写入日志的示例
操作系统日志信息(操作系统日志创建(“com.my.app”、“应用程序”)、“自定义信息日志”);//对于日志级别:info,类似地,也有诸如os_log_error、os_log_debug等功能
操作系统日志(操作系统日志默认值,“默认自定义日志”);

有许多第三方库可用。你可以用这些。你可以用CocoaLumberjack:@Mahendra我需要本机解决方案。你需要本机解决方案,我认为这太广泛了,无法在这里发布。@Mahendra这是一件非常简单的事情。我得到了我的答案,它正在发挥作用。我们不能说每一个主题的范围都太广,因为有很多第三方库可用。你可以用这些。你可以用CocoaLumberjack:@Mahendra我需要本机解决方案。你需要本机解决方案,我认为这太广泛了,无法在这里发布。@Mahendra这是一件非常简单的事情。我得到了我的答案,它正在发挥作用。我们不能说每一个话题的范围都太广,谢谢你的评论。但我需要本机解决方案。谢谢评论。但我需要本地解决方案。