From 7c5188a7e0af9410eeaf2e8ec2d6a51c3fa2e42f Mon Sep 17 00:00:00 2001 From: Stephan Wendel Date: Fri, 8 Apr 2022 19:13:09 +0200 Subject: [PATCH] refactor: refactored logging.sh The design till now was slow and time consuming. Now it exports the log destination once instead in every call of 'log_msg' Should be provide better start performance. Signed-off-by: Stephan Wendel --- libs/init_stream.sh | 2 +- libs/logging.sh | 49 +++++++++++++++++++++------------------------ webcamd | 3 +-- 3 files changed, 25 insertions(+), 29 deletions(-) diff --git a/libs/init_stream.sh b/libs/init_stream.sh index 2b75555..3dbfc31 100755 --- a/libs/init_stream.sh +++ b/libs/init_stream.sh @@ -45,6 +45,6 @@ function construct_streamer { if [ "${#RTSP_INSTANCES[@]}" != "0" ]; then run_rtsp "${RTSP_INSTANCES[*]}" fi - sleep 8 & sleep_pid="$!" ; wait "${sleep_pid}" + sleep 2 & sleep_pid="$!" ; wait "${sleep_pid}" log_msg " ... Done!" } diff --git a/libs/logging.sh b/libs/logging.sh index e1fec51..4301155 100755 --- a/libs/logging.sh +++ b/libs/logging.sh @@ -17,7 +17,19 @@ set -Ee ## Logging -function init_log_entry { +function set_log_path { + #Workaround sed ~ to BASH VAR $HOME + CROWSNEST_LOG_PATH=$(get_param webcamd log_path | sed "s#^~#${HOME}#gi") + declare -g CROWSNEST_LOG_PATH + #Workaround: Make Dir if not exist + if [ ! -d "$(dirname "${CROWSNEST_LOG_PATH}")" ]; then + mkdir -p "$(dirname "${CROWSNEST_LOG_PATH}")" + fi +} + +function init_logging { + set_log_path + delete_log log_msg "webcamd - A webcam Service for multiple Cams and Stream Services." log_msg "Version: $(self_version)" log_msg "Prepare Startup ..." @@ -36,28 +48,18 @@ function log_level { } function delete_log { - local del_log logfile - logfile="$(get_param "webcamd" log_path | sed "s#^~#${HOME}#gi")" + local del_log del_log="$(get_param "webcamd" delete_log 2> /dev/null)" if [ "${del_log}" = "true" ]; then - rm -rf "${logfile}" + rm -rf "${CROWSNEST_LOG_PATH}" fi } function log_msg { - local msg logfile prefix + local msg prefix msg="${1}" prefix="$(date +'[%D %T]') webcamd:" - #Workaround sed ~ to BASH VAR $HOME - logfile="$(get_param webcamd log_path | sed "s#^~#${HOME}#gi")" - #Workaround: Make Dir if not exist - if [ ! -d "${logfile}" ]; then - mkdir -p "$(dirname "${logfile}")" - fi - if [ ! -f "${logfile}" ]; then - touch "${logfile}" - fi - echo -e "${prefix} ${msg}" | tr -s ' ' >> "${logfile}" 2>&1 + echo -e "${prefix} ${msg}" | tr -s ' ' >> "${CROWSNEST_LOG_PATH}" 2>&1 echo -e "${msg}" | logger -t webcamd } @@ -114,15 +116,10 @@ function print_cams { } function debug_msg { - local msg logfile prefix - msg="${1}" - prefix="$(date +'[%D %T]') webcamd: DEBUG:" - #Workaround sed ~ to BASH VAR $HOME - logfile="$(get_param webcamd log_path | sed "s#^~#${HOME}#gi")" - #Workaround: Make Dir if not exist - if [ ! -d "${logfile}" ]; then - mkdir -p "$(dirname "${logfile}")" - fi - echo -e "${prefix} ${msg}" | tr -s ' ' >> "${logfile}" 2>&1 - echo -e "${msg}" | logger -t webcamd + local prefix + prefix="Develop -- DEBUG:" + while read -r msg; do + log_msg "${prefix}${msg}" + echo -e "${msg}" | logger -t webcamd + done <<< "${1}" } diff --git a/webcamd b/webcamd index 549fab8..a75433a 100755 --- a/webcamd +++ b/webcamd @@ -61,8 +61,7 @@ while getopts ":vhc:" arg; do esac done -delete_log -init_log_entry +init_logging initial_check v4l2_control construct_streamer