4

Я нахожу, что журналы syslogd "Cosole" моего Mac становятся непригодными, когда какое-то плохо написанное приложение (в данном случае PathFinder.app ) непрерывно вливается в syslogd весь день .. Я где-то читал, что вы можете отключить ведение журнала в приложении по ..

  1. Создание псевдонима для исполняемого пакета внутри "пакета" приложения, а затем ТОЛЬКО запуск этого псевдонима из терминала. Процесс был ... Перейдите к /Applications/ObnoxiousLogger.app, щелкните правой кнопкой мыши, "Показать содержимое пакета", а затем перейдите к ...

    /Applications/ObnoxiousLogger.app/Contents/MacOS/ObnoxiousLogger

    Затем вы создаете псевдоним через графический интерфейс и не забываете всегда запускать приложение из этого псевдонима, снова ТОЛЬКО через терминал.

    Это раздражает, так как вы ДОЛЖНЫ создавать псевдоним через Finder (символическая ссылка не работает, и нет способа создать псевдоним через терминал). И если он запускается любым другим способом, вы вернетесь к исходной точке , логорея.. Этот метод работал, но в течение очень короткого периода времени.

  2. Казалось бы, вы можете установить это с помощью команды launchctl или переменной plist , но это не приложение, которое запускает launchd, и документация launchd так повсеместно, но я думаю, что это возможно, я предположим.

  3. Я видел кое-что об отправке журнала в /dev /null, но не было ясно, был ли это какой-то канал syslogd, или команда, или параметр /etc/syslogd.conf, или что ...

Пожалуйста, дайте мне знать, если у вас есть надежный способ выборочно отключить ведение журнала для каждого приложения или, что еще лучше, увеличить или уменьшить подробность ведения журнала, для процесса / команды и т.д. В Mac OS X.

5 ответов5

5

Возможно, вы захотите взглянуть на asl.conf(5) который позволяет вам игнорировать / обрабатывать сообщения журнала на достаточно детальном уровне.

Что-то вроде:

? [= Sender ObnoxiousLogger] ignore

должен сделать свое дело. Если вы все еще хотите видеть более серьезные сообщения от отвратительного отправителя, что-то вроде:

? [= Sender ObnoxiousLogger] [> Level error] ignore

может быть более подходящим.

Примечание: после редактирования /etc/asl.conf не забудьте kill -HUP ваш syslogd.

3

Просто создайте файл »Поиск в новой базе данных…, поиск объекта содержит« console », а Sender не содержит« ObnoxiousLogger », и игнорируете поиск по умолчанию в базе данных Console Messages ?


Вы можете использовать следующую команду для установки отдельных уровней фильтрации журналов для определенных процессов:

syslog -c processname -d

Это установит уровень журнала текущих запущенных экземпляров имени processname для всех сообщений уровня отладки или выше. Возможными уровнями являются символы в pacewnid: (Паника), Предупреждение, Критический, Ошибка, Предупреждение, Уведомление, Информация и Отладка.

Итак, чтобы включить регистрацию только предупреждающих сообщений и выше для Finder, используйте:

syslog -c Finder -w

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

1

Предложенное Торстеном решение, похоже, не работает. Кажется, что добавление этих настроек в глобальный asl.conf не дает ожидаемого эффекта при обработке правил.

Решение этой проблемы, которое я обнаружил, после того, как я чуть не пришел в бешенство, борясь с основным asl.conf, заключается в использовании отдельных файлов конфигурации asl/* для каждого фильтра. Эти файлы должны храниться в /etc/asl/

например, игнорировать "com.example.Отправитель "и отфильтровав его журнал спама из system.log, мы можем создать файл /etc/asl/com.example.Sender со следующим содержанием:

? [= Sender com.example.Sender] claim only
* ignore

claim only для совпадения (в данном случае "Отправитель") приводит к тому, что правила в главном asl.conf игнорируются, а это означает, что в system.log ничего не закончится.

Не забудьте перезапустить syslogd , конечно.

0

Я нахожусь на MacOS Mojave (10.14.3), и этот пост был полезен для меня, поэтому я хочу уточнить, что сработало для меня, поскольку я не видел все это вместе в одном месте. В моем случае я хотел отфильтровать сообщения Microsoft OneNote, которые постоянно спамили мой файл system.log со скоростью 5 секунд. Пример сообщения:

Feb  3 22:52:49 MyMacMini-2 Microsoft OneNote[393]: [ACT]:[TASKSCHEDULER]:[Info]:opQueue=0x6000012d7760 after call to waitUntilAllOperationsAreFinished

Поэтому я отредактировал /etc/asl.conf со следующим правилом:

# Disable Microsoft OneNote logging as is filling up system.log!
? [= Sender Microsoft OneNote] ignore

Вы должны добавить это перед строкой, которая говорит:

# Rules for /var/log/system.log

Как иначе это не будет работать. Затем просто перезапустите syslogd с помощью этой команды, и сообщения должны быть удалены из system.log:

sudo killall -HUP syslogd
0

Более подробный ответ я разместил на AskDifferent.

Поместите в /etc/asl.conf правило, подобное следующему

? [= Sender foobar] [<= Level error] notify com.apple.foobar
  op   key   value   op  key   value
  -----query 1----- -----query 2---- ---------action--------

Чтобы игнорировать сообщения как в system.log и в Console.app , необходимо добавить правила игнорирования сообщений перед следующим комментарием в asl.conf .

# Flat file configurations formerly in syslog.conf

Пример с модификатором S , который игнорирует сообщения, совпадающие с этой подстрокой от SIMBL Agent .

? [= Sender SIMBL Agent] [S= Message warning: failed to get scripting definition from] ignore
  op -key-- ---value---  mod --key-- --------------------value-----------------------
  --------query 1------- -----------------------query 2------------------------------- action

После добавления правила перезапустите демон с помощью sudo killall HUP syslogd .

Успешно протестировано в OS X 10.8.5.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .