feature/logger #2
46
README.md
46
README.md
@@ -8,12 +8,18 @@ Checks a given folder for certain file extensions recursively. All found files w
|
||||
|
||||
The [check_folder_for_extension test folder](cffe_test) contains of 13 files, 12 of them images, which should be found by the test.
|
||||
|
||||
function call:
|
||||
Function call:
|
||||
```
|
||||
check_folder_for_extension ./cffe_test "*.jpg *.JPG"
|
||||
check_folder $my_folder $extension_list
|
||||
```
|
||||
|
||||
To test the function call:
|
||||
```
|
||||
check_folder_for_extension.sh ./cffe_test "*.jpg *.JPG"
|
||||
```
|
||||
For multiple extensions (or other parts of the file name to match) space separate the list, like shown above.
|
||||
|
||||
|
||||
## Clean up
|
||||
|
||||
Cleaning up in a script and exit with a given exit code.
|
||||
@@ -27,3 +33,39 @@ For testing the function call the script with:
|
||||
```
|
||||
clean_up.sh test
|
||||
```
|
||||
|
||||
## Logger
|
||||
|
||||
[Logger](logger.sh) to write messages with individual levels to a file.
|
||||
|
||||
In level *debug* all logged messages are printed to stdout, too.
|
||||
|
||||
Log levels are
|
||||
|
||||
5 LLDebug, *for exceptionally verbose messages, also on std out*
|
||||
|
||||
4 LLInfo, *informative messages*
|
||||
|
||||
3 LLWarning, *warning messages*
|
||||
|
||||
2 LLError, *error messages*
|
||||
|
||||
1 LLMdtry and *mandatory messages to get minimal info in a log file*
|
||||
|
||||
0 LLMute *really nothing gets written*
|
||||
|
||||
The higher the level set in `$Log_Level` to the logger, the more verbose it gets.
|
||||
|
||||
```
|
||||
logger $LLWARNING "This is my message";
|
||||
```
|
||||
produces the following message in the log file:
|
||||
|
||||
```
|
||||
logger 20231122_22:43:19 Warning: This is my message!
|
||||
```
|
||||
|
||||
For testing the function call the script with just:
|
||||
```
|
||||
logger.sh
|
||||
```
|
||||
|
||||
112
logger.sh
Executable file
112
logger.sh
Executable file
@@ -0,0 +1,112 @@
|
||||
# Log levels for messages
|
||||
LLMute=0
|
||||
LLMdtry=1 # mandatory: messages that are always written to the log (except mute)
|
||||
LLError=2
|
||||
LLWarning=3
|
||||
LLInfo=4
|
||||
LLDebug=5
|
||||
## Actual log level of the logger used
|
||||
Log_Level=$LLInfo
|
||||
|
||||
## base name of the logging script.
|
||||
Log_Name="${0##*/}";
|
||||
|
||||
## Write log of the script.
|
||||
## $1 Loglevel to log the message with.
|
||||
## $2 message to log.
|
||||
function logger() {
|
||||
local _logging_level=$1;
|
||||
local _log_message=$2;
|
||||
if [[ $Log_Level -lt $_logging_level ]]; then
|
||||
return;
|
||||
fi
|
||||
local _now=$($DATE +%Y%m%d_%H:%M:%S);
|
||||
if [[ $_logging_level -eq $LLInfo ]]; then
|
||||
_type=" Info:";
|
||||
elif [[ $_logging_level -eq $LLError ]]; then
|
||||
_type=" ERROR!";
|
||||
elif [[ $_logging_level -eq $LLWarning ]]; then
|
||||
_type=" Warning:";
|
||||
elif [[ $_logging_level -eq $LLDebug ]]; then
|
||||
_type=" DEBUG:";
|
||||
else
|
||||
_type=":";
|
||||
fi
|
||||
printf "$Log_Name ${_now}${_type} ${_log_message}\n" >> $Log_File;
|
||||
if [[ $Log_Level -eq $LLDebug ]]; then
|
||||
printf "${_now}${_type} ${_log_message}\n";
|
||||
fi
|
||||
}
|
||||
|
||||
function test() {
|
||||
printf "Running tests for logger().\n";
|
||||
local _exit_val=0;
|
||||
# Test log level mute: no logfile should be created!
|
||||
Log_Level=$LLMute;
|
||||
logger $LLMdtry "In level mute nothing should be logged!";
|
||||
if [ -e "$Log_File" ]; then # the logfile should not exist!
|
||||
((_exit_val+=1))
|
||||
printf "logger() test on log level Mute: FAILED!\n";
|
||||
rm $Log_File;
|
||||
else
|
||||
printf "logger() test on log level Mute: OK.\n";
|
||||
fi
|
||||
|
||||
# Test log level Mdtry, but log with level error: still no logfile should be created!
|
||||
Log_Level=$LLMdtry;
|
||||
logger $LLError "In level Mdtry an error should not be logged!";
|
||||
if [ -e "$Log_File" ]; then # the logfile should not exist!
|
||||
((_exit_val+=1))
|
||||
printf "logger() test on log level Mandatory; logging an error happend, so test FAILED!\n";
|
||||
rm $Log_File;
|
||||
else
|
||||
printf "logger() test on log level Mandatory: when logging an error failed: test OK.\n";
|
||||
fi
|
||||
|
||||
# Test log level Info, but log with level error: logfile should be created!
|
||||
Log_Level=$LLInfo;
|
||||
logger $LLError "In level Info an error should be logged!";
|
||||
if [ -e "$Log_File" ]; then # the logfile should now exist.
|
||||
printf "logger() test on log level Info: logging an error succeeded, test OK.\n";
|
||||
rm $Log_File;
|
||||
else
|
||||
((_exit_val+=1))
|
||||
printf "logger() test on log level Info: logging an error FAILED!\n";
|
||||
fi
|
||||
|
||||
# Test log level Info, but log with level debug: logfile should not be created!
|
||||
Log_Level=$LLInfo;
|
||||
logger $LLDebug "In level Info a debug message should not be logged!";
|
||||
if [ -e "$Log_File" ]; then # the logfile should not exist.
|
||||
((_exit_val+=1))
|
||||
printf "logger() test on log level Info: logging a debug message succeeded, so test FAILED!\n";
|
||||
rm $Log_File;
|
||||
else
|
||||
printf "logger() test on log level Info: logging a debug message failed: test OK.\n";
|
||||
fi
|
||||
|
||||
# Test log level Debug, but log with level debug: logfile should be created!
|
||||
Log_Level=$LLDebug;
|
||||
logger $LLDebug "In level Debug a debug message should be logged. ALso the message should appaer on std out.";
|
||||
if [ -e "$Log_File" ]; then # the logfile should not exist.
|
||||
printf "logger() test on log level Debug: logging a debug message succeeded, so test OK.\n";
|
||||
rm $Log_File;
|
||||
else
|
||||
((_exit_val+=1))
|
||||
printf "logger() test on log level Debug: logging a debug message failed: test FAILED!\n";
|
||||
fi
|
||||
|
||||
return $_exit_val;
|
||||
}
|
||||
|
||||
DATE=$(which date);
|
||||
|
||||
Run_Date=$($DATE +%Y_%m_%d)
|
||||
Log_File="${Run_Date}_${Log_Name}.log";
|
||||
|
||||
test
|
||||
if [ $? -eq 0 ]; then
|
||||
printf "All test succeeded.\n";
|
||||
else
|
||||
printf "$? of 5 tests FAILED!\n";
|
||||
fi
|
||||
Reference in New Issue
Block a user