NSLog не работает в моем благословенном HelperTool


Для создания пользовательских пакетов и использования libpcap я создал вспомогательный инструмент, который работает от имени root благодаря SMJobBless. В моем вспомогательном средстве NSLog не отправляет журналы в консоль.апп. Я должен использовать syslog, который отправляет мне журналы в консоли, но у меня есть проблемы с регистрацией объектов.

Есть ли у кого-нибудь идея, почему NSLog не работает в таком благословенном вспомогательном инструменте ?

2   2  

2 ответа:

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

#define MyLog(fmt, ...) \
    syslog(LOG_INFO, [[NSString stringWithFormat:fmt, ##__VA_ARGS__] UTF8String]);

Или если вы хотите повлиять на уровень журнала:

#define MyLog2(level, fmt, ...) \
    syslog(level, [[NSString stringWithFormat:fmt, ##__VA_ARGS__] UTF8String]);
Поместите макрос в свой файл .pch, чтобы получить к нему доступ во всех исходных файлах. Затем вы можете использовать их как NSLog, даже с одним аргументом:
MyLog(@"Test, test, 1 2 3");
MyLog(@"Content of object: %@", myObject);

3 года спустя, только что нашел ответ: журналы отправляются HelperTool пользователем root.

Запуск Консоли.приложение с sudo сделать журналы появляются.