#!/usr/bin/env bash
# GridAdmin Tools logger
# Description: redirects stderr to a logfile using the OIO log format

logfile=${OIO_GA_LOGS:="/tmp/oio-gridadmin-tools.log"}

log() {
        lvl=$1
        msg=$2
        date +"%Y-%m-%d %H:%M:%S,%3N - $lvl  ($TASK) $msg"
}

redirect() {
  exec 2>&8;
  exec >&8;
}

exec 8> >(
    IFS=''
    while read -r line; do
       year=`date +"%Y"`
       if [ "${line:0:4}" = "$year" ]; then
         echo ${line/$'\n'/} >> $logfile
       else
         log "WARN" ${line/$'\n'/} >> $logfile
       fi
    done
    unset IFS
)


trap "redirect;" DEBUG
