Как записать лог в текстовый файл для целей отладки, используя цель C? - PullRequest
2 голосов
/ 11 ноября 2010

Я хочу отладить процесс входа в мое приложение и хочу оценить результаты при разработке моего приложения.

Процесс входа в систему содержит основные вещи, такие как имя пользователя и пароль, и я хочу, чтобы результаты этого и других учетных данных были сохранены в файле.

Итак, как этого добиться, разрабатывая приложение и не используя точки останова все время.

Спасибо.

Ответы [ 4 ]

5 голосов
/ 11 ноября 2010

Не зная больше, 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];
}
4 голосов
/ 11 ноября 2010

вы можете перенаправить 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);
}
1 голос
/ 11 ноября 2010
NSError *error;
NSMutableString *logstr = [ [NSMutableString alloc] init ];

// write info to logstr here

[ logstr writeToFile:@"file.log" atomically:YES encoding:NSUnicodeStringEncoding error:&error ];
0 голосов
/ 11 ноября 2010

Вы можете взглянуть на Log4Cocoa .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...