Skip to content

Логгирование или logger в bash

logger хорошо подходит для журналирования в bash.
!! Но имеет ошибку: аргумент -t/--tag опционален и по умолчанию принимает username.

Теги в вызове logger:

Bash
logger --tag "$0[$$]"

В простейшем случае используются две переменные: $0 - имя скрипта; $$ - идентификатор процесса. Трабл с $0 в том, что ее содержимое зависит от способа вызова скрипта. Лучше юзать basename.

Bash
logger --tag "$PROGRAM[$$]"

Если уже есть переменная для хранения имени файла сценария, например $PROGRAM, юзай ее.

Bash
logger --tag "${0##*/}[$$]"

Если нет переменной для хранения имени скрипта, получить его можно прямо в команде logger. Код выглядит не очень ясным, но работает (хз хз). Попробуй echo "${0##*/}[$$]", чтобы оценить результат.

А если хочешь свой логгер создать - смотри "printf usage".


Соус: Книга "Идиомы Bash" --> Глава 10. "Помимо идиом: работа с bash" --> "Журналирование в bash"

bash #logs