A collection of reusable bash code.
- log: logging library
#! /usr/bin/env bash | |
set -o errexit -o nounset -o pipefail -o noclobber | |
__log_MODULE_NAME="$(basename "${BASH_SOURCE[0]}")" | |
readonly __log_MODULE_NAME | |
__log_print() { | |
local -r level_name=$1 | |
local -r level_color=$2 | |
local -r message=$3 | |
local -r do_color_message=${4:-false} | |
local -r style_reset="\\e[0m" | |
local message_part="$message" | |
if [[ $do_color_message = true ]]; then | |
message_part="${level_color}$message${style_reset}" | |
fi | |
echo -e "${style_reset}(${__log_MODULE_NAME})${level_color}${level_name}:${style_reset} ${message_part}" >&2 | |
} | |
log_debug() { | |
local -r message=$1 | |
local -r level_name=" debug" | |
local -r level_color="\\e[37m" | |
__log_print "$level_name" "$level_color" "$message" true | |
} | |
log_info() { | |
local -r message=$1 | |
local -r level_name=" info" | |
local -r level_color="\\e[36m" | |
__log_print "$level_name" "$level_color" "$message" | |
} | |
log_warn() { | |
local -r message=$1 | |
local -r level_name=" warn" | |
local -r level_color="\\e[33m" | |
__log_print "$level_name" "$level_color" "$message" | |
} | |
log_error() { | |
local -r message=$1 | |
local -r level_name=" error" | |
local -r level_color="\\e[31m" | |
__log_print "$level_name" "$level_color" "$message" true | |
} | |
__log_test() { | |
log_debug "pellentesque diam volutpat commodo sed" | |
log_info "viverra maecenas accumsan lacus vel" | |
log_warn "cursus mattis molestie a iaculis" | |
log_error "ut etiam sit amet nisl" | |
} |