Skip to content

Instantly share code, notes, and snippets.

@sergeiwaigant
Last active November 14, 2019 02:44
Show Gist options
  • Save sergeiwaigant/1a1b380478752a4cd90503c1227d99e7 to your computer and use it in GitHub Desktop.
Save sergeiwaigant/1a1b380478752a4cd90503c1227d99e7 to your computer and use it in GitHub Desktop.
function bashLogger() {
local logLevel="INFO"
local logMessage=""
[[ $# -ge 1 ]] && { logMessage=$1;shift;}
[[ $# -ge 1 ]] && { logLevel=${logMessage}; logMessage=$1; shift;}
local additionalMessages="$@"
local timestamp=$(TZ=UTC-1 date +'%Y-%m-%d %H:%M:%S,%3N')
if [[ ${BASH_LOG_FORMAT-} != "JSON" ]]; then
echo -e "[${timestamp}] ${logLevel} ${logMessage} ${additionalMessages}"
elif [[ ${BASH_LOG_FORMAT-} == "JSON" ]]; then
echo -e "{\"domain\":\"${IKEP_DOMAIN}\",\"ikep-stage\":\"${IKEP_STAGE}\",\"ikep-cluster\":\"${IKEP_CLUSTER}\",\"tag\":\"${IKEP_TAG}\",\"message\":\"[${timestamp}] ${logLevel} ${logMessage} ${additionalMessages}\"}"
fi
}
function bashLoggerMultiLine() {
local logLevel="INFO"
local logMessage=""
[[ $# -ge 1 ]] && { logMessage=$1;shift;}
[[ $# -ge 1 ]] && { logLevel=${logMessage}; logMessage=$1; shift;}
# Adds date and time before printing the line.
while read line; do bashLogger ${logLevel} ${logMessage} $line; done
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment