繁体   English   中英

如何使用目标C将日志写入文本文件以进行调试?

[英]How to write a log in to a text file for debugging purpose using objective C?

我想调试我的应用程序中的登录过程,并希望在开发我的应用程序时评估结果。

登录过程包含用户名和密码等基本内容,我希望将此结果和其他凭据存储在文件中。

那么如何在开发应用程序时完成此任务,而不是一直使用断点。

谢谢。

不知道更多, NSLog可能会这样做。


啊......好的 这样做你想要的(无论如何都是锅炉板),同时继续支持完整的NSString格式。

....某处,宣布一个全球......

NSFileHandle *logFile = nil;

...初始化代码....

logFile = [NSFileHandle fileHandleForWritingAtPath: ...string containing path...];

......实际的日志功能....

void MyLog(NSString *format, ...) {
    va_list args;
    va_start(args, format);
    NSString *formattedString = [[NSString alloc] initWithFormat: format
                                                  arguments: args];
    va_end(args);
    [logFile writeData: [formattedString dataUsingEncoding: NSNEXTSTEPStringEncoding]];
    [formattedString release];
}

您可以将stderr(这是NSLog将其消息放入的位置)重定向到文件。

+ (void)redirectNSLogToFile {
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *documentsDirectory = [paths objectAtIndex:0];
    NSString *logPath = [documentsDirectory stringByAppendingPathComponent:@"console.log"];
    freopen([logPath cStringUsingEncoding:NSASCIIStringEncoding],"a+",stderr);
}
NSError *error;
NSMutableString *logstr = [ [NSMutableString alloc] init ];

// write info to logstr here

[ logstr writeToFile:@"file.log" atomically:YES encoding:NSUnicodeStringEncoding error:&error ];

你可以看看Log4Cocoa

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM