Skip to content

Instantly share code, notes, and snippets.

@jdmedeiros
Created December 23, 2020 20:34
Show Gist options
  • Save jdmedeiros/1add075e054c911776d26e97a84dfdec to your computer and use it in GitHub Desktop.
Save jdmedeiros/1add075e054c911776d26e97a84dfdec to your computer and use it in GitHub Desktop.
Modular approach to bash logging
#!/bin/bash
# From here https://www.cubicrace.com/2016/03/efficient-logging-mechnism-in-shell.html
# Modular approach to bash logging
#
SCRIPT_LOG=/var/log/cloud-config.log
touch $SCRIPT_LOG
function SCRIPTENTRY() {
timeAndDate=$(date)
script_name=$(basename "$0")
script_name="${script_name%.*}"
echo "[$timeAndDate] [DEBUG] > $script_name $FUNCNAME" >>$SCRIPT_LOG
}
function SCRIPTEXIT() {
script_name=$(basename "$0")
script_name="${script_name%.*}"
echo "[$timeAndDate] [DEBUG] < $script_name $FUNCNAME" >>$SCRIPT_LOG
}
function ENTRY() {
local cfn="${FUNCNAME[1]}"
timeAndDate=$(date)
echo "[$timeAndDate] [DEBUG] > $cfn $FUNCNAME" >>$SCRIPT_LOG
}
function EXIT() {
local cfn="${FUNCNAME[1]}"
timeAndDate=$(date)
echo "[$timeAndDate] [DEBUG] < $cfn $FUNCNAME" >>$SCRIPT_LOG
}
function INFO() {
local function_name="${FUNCNAME[1]}"
local msg="$1"
timeAndDate=$(date)
echo "[$timeAndDate] [INFO] $msg" >>$SCRIPT_LOG
}
function DEBUG() {
local function_name="${FUNCNAME[1]}"
local msg="$1"
timeAndDate=$(date)
echo "[$timeAndDate] [DEBUG] $msg" >>$SCRIPT_LOG
}
function ERROR() {
local function_name="${FUNCNAME[1]}"
local msg="$1"
timeAndDate=$(date)
echo "[$timeAndDate] [ERROR] $msg" >>$SCRIPT_LOG
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment