簡體   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