Настройте NSLog так, чтобы он показывал меньше информации - PullRequest
1 голос
/ 15 апреля 2011

по умолчанию NSLog выводит длинную строку перед запрошенным выводом,

например:

NSLog(@"Log message");

Вывод на консоль:

2011-04-15 11:23:01.692 MyAppName[23160:903] Log message

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

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

Ответы [ 2 ]

2 голосов
/ 13 апреля 2013

Это определенно первая вещь, которую я делаю в новом проекте.NSLog(…) имеет понос во рту .Вот базовый макрос, который позволяет вам получить тишины и покоя .. И регистрировать базовые объекты без раздражающего синтаксиса NSLog(@"%@", xYz); (вместо этого вы просто NSLog(xYz);).

#define NSLog(fmt...) NSShutUp(__PRETTY_FUNCTION__,fmt)
#define UTF8FMT(fmt,argL) \
       [NSString.alloc initWithFormat:fmt arguments:argL].UTF8String

void NSShutUp(const char*func, id fmt, ...) {
    if (![fmt isKindOfClass:NSString.class]) 
    // it's not a string (aka. the formatter), so print it)
      fprintf (stderr, "%s: %s\n", func, 
       [[NSString stringWithFormat:@"%@",fmt,nil]UTF8String]); 
    else {      va_list argList;     va_start (argList, fmt);
      fprintf (stderr, "%s: %s\n", func, UTF8FMT(fmt,argList)); 
      va_end  (argList);
}   }

/*  SAMPLE RUN */

int main (void) { NSString *a; NSNumber *b; NSArray *c;
    NSLog(a = @"Ahh, silence."    );
    NSLog(b = @(M_PI)             );
    NSLog(c = @[@"Arrays, baby!"] );
    // Old syntax still works.
    NSLog(@"%@ * %@ * %@",a,b,c);
    return 0;

}

ВЫХОД

int main(): Ahh, silence.
int main(): 3.141592653589793
int main(): (
    "Arrays, baby!"
)
int main(): Ahh, silence. * 3.141592653589793 * (
    "Arrays, baby!"
)
0 голосов
/ 19 мая 2011

Я бы порекомендовал вам начать использовать лучшие альтернативы NSlog, такие как SOSMAX или NSLogger.Вот краткий обзор их обоих http://learning -ios.blogspot.com / 2011/05 / better-nslog-ing.html

...