Как не отображать логи в выводе Xcode, но все же отправлять их в отчеты Hockeyapp

Я использую Hockeyapp для отчетов о сбоях и сбора журналов при сбоях приложения. Используя метод ниже.

- (void)setupLumberjack {
    // Configure CocoaLumberjack
    [DDLog addLogger:[DDASLLogger sharedInstance]];
    [DDLog addLogger:[DDTTYLogger sharedInstance]];

    // Initialize File Logger
    // initialize before HockeySDK, so the delegate can access the file logger!
    _fileLogger = [[DDFileLogger alloc] init];
    _fileLogger.maximumFileSize = (1024 * 128); // 128 KByte
    _fileLogger.logFileManager.maximumNumberOfLogFiles = 5;
    [_fileLogger rollLogFileWithCompletionBlock:nil];
    [DDLog addLogger:_fileLogger];
}

Настройка уровня журнала:

static const int ddLogLevel = LOG_LEVEL_ALL;

Теперь я хотел бы, чтобы ВСЕ уровни журнала по-прежнему отправлялись в отчеты Hockeyapp, но подавляли ЛЮБОЙ вывод в консоли xcode.

Как я могу этого добиться? Наверное, здесь чего-то не хватает.

Использую версию 1.9.2, но готов обновить до 2.x, если это будет необходимо.


person digitaljerry    schedule 24.05.2016    source источник
comment
Вы пробовали просто не добавлять DDTTYLogger? Похоже, это именно то, что вы хотите.   -  person Lukas Spieß    schedule 24.05.2016
comment
Именно то, что я искал. Спасибо!   -  person digitaljerry    schedule 24.05.2016


Ответы (2)


Журналы Xcode всегда отображаются в консоли Xcode.
У вас нет возможности отключить их.

Но вы можете скрыть окно вывода: P

Вы также можете установить пользовательские флаги компилятора для настроек сборки отладки.

введите здесь описание изображения

Затем вы кодируете макрос DLog(), который будет отображать NSLog() только при наличии этого флага => только при отладке с помощью Xcode.
При этом пользователи не будут вести журнал на своем устройстве.

person David 'mArm' Ansermot    schedule 24.05.2016
comment
Лол :) Хорошо, позвольте мне перефразировать это. Я не хочу, чтобы все мои драгоценные журналы были видны другим, использующим Xcode->Devices->Device Console. - person digitaljerry; 24.05.2016

Ответ, который я искал, был опубликован в комментарий.

Простое удаление этой строки помогло: [DDLog addLogger:[DDTTYLogger sharedInstance]];

person digitaljerry    schedule 24.05.2016