1
0
mirror of https://github.com/openshift/image-registry.git synced 2026-02-05 09:45:55 +01:00
Files
image-registry/hack/lib/log/output.sh
2017-11-09 09:31:11 -05:00

104 lines
2.7 KiB
Bash

#!/bin/bash
# This file contains functions used for writing log messages
# to stdout and stderr from scripts while they run.
# os::log::info writes the message to stdout.
#
# Arguments:
# - all: message to write
function os::log::info() {
local message; message="$( os::log::internal::prefix_lines "[INFO]" "$*" )"
os::log::internal::to_logfile "${message}"
echo "${message}"
}
readonly -f os::log::info
# os::log::warning writes the message to stderr.
# A warning indicates something went wrong but
# not so wrong that we cannot recover.
#
# Arguments:
# - all: message to write
function os::log::warning() {
local message; message="$( os::log::internal::prefix_lines "[WARNING]" "$*" )"
os::log::internal::to_logfile "${message}"
os::text::print_yellow "${message}" 1>&2
}
readonly -f os::log::warning
# os::log::error writes the message to stderr.
# An error indicates that something went wrong
# and we will most likely fail after this.
#
# Arguments:
# - all: message to write
function os::log::error() {
local message; message="$( os::log::internal::prefix_lines "[ERROR]" "$*" )"
os::log::internal::to_logfile "${message}"
os::text::print_red "${message}" 1>&2
}
readonly -f os::log::error
# os::log::fatal writes the message to stderr and
# returns a non-zero code to force a process exit.
# A fatal error indicates that there is no chance
# of recovery.
#
# Arguments:
# - all: message to write
function os::log::fatal() {
local message; message="$( os::log::internal::prefix_lines "[FATAL]" "$*" )"
os::log::internal::to_logfile "${message}"
os::text::print_red "${message}" 1>&2
exit 1
}
readonly -f os::log::fatal
# os::log::debug writes the message to stderr if
# the ${OS_DEBUG} variable is set.
#
# Globals:
# - OS_DEBUG
# Arguments:
# - all: message to write
function os::log::debug() {
local message; message="$( os::log::internal::prefix_lines "[DEBUG]" "$*" )"
os::log::internal::to_logfile "${message}"
if [[ -n "${OS_DEBUG:-}" ]]; then
os::text::print_blue "${message}" 1>&2
fi
}
readonly -f os::log::debug
# os::log::internal::to_logfile makes a best-effort
# attempt to write the message to the script logfile
#
# Globals:
# - LOG_DIR
# Arguments:
# - all: message to write
function os::log::internal::to_logfile() {
if [[ -n "${LOG_DIR:-}" && -d "${LOG_DIR-}" ]]; then
echo "$*" >>"${LOG_DIR}/scripts.log"
fi
}
# os::log::internal::prefix_lines prints out the
# original content with the given prefix at the
# start of every line.
#
# Arguments:
# - 1: prefix for lines
# - 2: content to prefix
function os::log::internal::prefix_lines() {
local prefix="$1"
local content="$2"
local old_ifs="${IFS}"
IFS=$'\n'
for line in ${content}; do
echo "${prefix} ${line}"
done
IFS="${old_ifs}"
}