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, надає всеохоплюючу інформацію.