LINUX.ORG.RU

История изменений

Исправление 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