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, предоставляет исчерпывающую информацию.