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