Bash:
Журналирование

Как:

В Bash логирование может быть таким же простым, как перенаправление или добавление вывода в файл. Вот простой пример:

echo "Начало выполнения скрипта..." >> script.log
# Команды вашего скрипта здесь
echo "Скрипт завершён $(date)" >> script.log

Для более продвинутого использования вы можете включить syslog для системного логирования:

logger "Пользовательское сообщение из моего скрипта"

logger отправляет сообщение журнала в службу syslog, которая затем обрабатывает его в соответствии с конфигурацией syslog системы.

Пример вывода, зафиксированного в script.log:

Начало выполнения скрипта...
Скрипт завершён во вт мар 23 09:26:35 PDT 2021

Погружение

Исторически в системах, подобных Unix, логирование облегчалось службой syslog, позволяя различным приложениям и частям системы централизованно регистрировать сообщения. Это позволяет реализовать стандартизированный механизм логирования по всей системе.

Когда речь заходит о альтернативах, некоторые могут рассмотреть использование syslog-ng или rsyslog для более продвинутых функций логирования, или запись логов в временную серию баз данных для аналитических целей. Для приложений с более высоким уровнем сложности использование специализированной библиотеки или приложения для логирования, такого как Log4j (в экосистеме Java) или Monolog (в PHP), которые могут предоставить структурированные и настраиваемые варианты логирования, может оказаться разумным даже для языка сценариев, такого как Bash.

Способ, которым вы реализуете логирование, в значительной степени зависит от требований вашего приложения. Если вам просто нужен простой вывод для отслеживания прогресса скрипта, добавление сообщений в файл является простым и удобным. Однако для более масштабируемого и надёжного логирования вы захотите интегрироваться с системой логирования, поддерживающей функции вроде ротации логов, уровней логирования и удалённого логирования.

См. также

  • Страницы man для функций logger и syslog всегда помогут, попробуйте man logger или man syslog.
  • Для более глубокого изучения системного логирования стоит обратить внимание на документацию rsyslog и syslog-ng.
  • Чтобы узнать больше о историческом контексте и принципах логирования в системах, подобных Unix, протокол Syslog, документированный в RFC 5424, предоставляет исчерпывающую информацию.