diff options
Diffstat (limited to 'src/main/scripts/logger.sh')
-rw-r--r-- | src/main/scripts/logger.sh | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/src/main/scripts/logger.sh b/src/main/scripts/logger.sh new file mode 100644 index 00000000..0c56aef0 --- /dev/null +++ b/src/main/scripts/logger.sh @@ -0,0 +1,58 @@ +#!/bin/bash +### +# ============LICENSE_START======================================================= +# PROJECT +# ================================================================================ +# Copyright (C) 2018 Nokia Networks Intellectual Property. All rights reserved. +# ================================================================================ +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============LICENSE_END========================================================= +### + +log() { + logMessage "INFO " "$1" +} + +logWarn() { + logMessage "WARN " "$1" +} + +logError() { + logMessage "ERROR" "$1" +} + +# Mimics log4j formatter so log files are consistent +logMessage() { + echo "[$(date -u +'%Y-%m-%d %H:%M:%S,%3N')][$1][$(printf "%-9s %s\n" "PID $$")][$0] - $2" +} + +# Run command, catch all the stdout and stderr and based on whether it succeeded, take the output, +# and log them using common formatter. +# It is done, so that the log files could be consistent and not look like swiss cheese having +# nicely formatted lines surrounded with raw command outputs +# All log lines that are logged by those external comments are prepended with (ext process) so they +# can be distinguished from hand-rolled messages +loggedCommand() { + output=$($1 2>&1) + if [ ! -z "${output}" ]; then + if [ $? -eq 0 ]; then + while read -r line; do + log "(ext process) $line" + done <<< "$output" + else + while read -r line; do + logError "(ext process) $line" + done <<< "$output" + fi + fi +}
\ No newline at end of file |