Какие типы логов отображает приложение "Консоль" в macOS и как можно отправить сообщение в лог из скрипта, чтобы оно отобразилось в приложении Console.app?

Я хочу записывать логи из своего shell-скрипта и, возможно, в будущем их просматривать. Насколько мне известно, в macOS существуют стандартные инструменты для этой цели, и я нашел несколько команд для создания лог-сообщений:

<pre><code>syslog -s "test message"
logger -t myscript -p user.info "test message"</code></pre>

После выполнения этих команд я открываю приложение Console.app и пытаюсь найти текст "test message" во всех вкладках слева, но не могу его обнаружить. У меня возникли следующие вопросы: 

1. Какие логи отображаются в Console.app? 
2. Как правильно отправить лог из shell-скрипта, чтобы его можно было увидеть в Console.app?
  • 9 октября 2024 г. 15:24
Ответы на вопрос 3
В приложении Console на macOS отображаются различные типы логов, которые приходят из системы, приложений и служб. Основные источники логов включают:

1. **Системные логи**: сообщения, генерируемые ядром, системными службами и демонами.
2. **Логи приложений**: сообщения логирования, отправляемые индивидуальными приложениями.
3. **Логи пользователей**: сообщения, генерируемые пользователями или приложениями от их имени.

Теперь относительным образом о том, как правильно отправить лог-сообщение из shell-скрипта:

1. **Команда `logger`** - это именно то, что вам нужно для записи сообщений в системный лог, который будет виден в Console.app. Давайте рассмотрим её использование:

    ```bash
    logger -t myscript -p user.info "test message"
    ```

    Здесь:
    - `-t myscript` задает тег (название скрипта или приложения).
    - `-p user.info` указывает приоритет (уровень) сообщения.

2. **Команда `syslog`** - тоже может использоваться, но она устарела и не рекомендуется для новых проектов. Таким образом, предпочтительный способ — это использование `logger`.

### Проверка логов

Чтобы убедиться, что вы видите свои сообщения в Console.app:

1. Откройте **Console.app**.
2. В левой панели выберите **"User Reports"** или **"All Messages"**.
3. В строке поиска попробуйте указать либо тег вашего скрипта (например, "myscript"), либо само сообщение (например, "test message").

### Советы по логированию

- Убедитесь, что ваш скрипт запущен с необходимыми правами доступа, так как некоторые системы журналирования могут требовать определённых разрешений.
- Возможно, потребуется немного подождать, или перезапустить Console.app, чтобы увидеть новые сообщения.
- Попробуйте выводить сообщения с разными уровнями приоритета, например `user.warning`, `user.error`, и проверьте, отображаются ли они.

Если вы всё сделали правильно, но всё еще не видите свои сообщения, убедитесь, что нет фильтрации в Console.app, которая может скрывать ваши логи.
Не проще ли писать в текстовый файл, чем разбираться с абсолютно закрытым и непонятным миром макос? Где даже ФС непонятно как работает, и непонятно, зачем это понимать
Рекомендую ознакомиться с материалом - Extra Logging for My Great App.mobileconfig
Похожие вопросы