История изменений
Исправление vodz, (текущая версия) :
Первое принимается,
Присваивание в local var=val - bash-изм на пустом месте.
второе нет. Если в stdin сейчас нет данных это не значит, что их не появится в будущем.
Тогда date надо делать внутри цикла.
И, кстати, не надо извращаться с exec, определение функции с редиректом делает это нагляднее.
Итого:
logwriter()
{
local loglevel textlog out
loglevel=${1:-INFO}
while read textlog; do
out=$(LANG=C date)
echo "$out [$loglevel] :: $textlog"
done
[ -z "$out" ] && echo "$(LANG=C date) [$loglevel] :: ~empty~"
} >> $LOG_FILE
echo warn foo bar| logwriter WARNING
echo info | logwriter
echo | logwriter ERROR
logwriter EOF
Исходная версия vodz, :
Первое принимается,
Присваивание в local var=val - bash-изм на пустом месте.
второе нет. Если в stdin сейчас нет данных это не значит, что их не появится в будущем.
Тогда date надо делать внутри цикла.
И, кстати, не надо извращаться с exec, определение функции с редиректом делает это нагляднее.
Итого:
logwriter()
{
local loglevel
local textlog out
loglevel=${1:-INFO}
while read textlog; do
out=$(LANG=C date)
echo "$out [$loglevel] :: $textlog"
done
[ -z "$out" ] && echo "$(LANG=C date) [$loglevel] :: ~empty~"
} >> $LOG_FILE
echo warn foo bar| logwriter WARNING
echo info | logwriter
echo | logwriter ERROR
logwriter EOF