Bird
Raised Fist0
Bash Scriptingscripting~5 mins

Logging framework in Bash Scripting - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is a logging framework in the context of bash scripting?
A logging framework is a set of tools or functions in bash scripts that help record messages about the script's execution, such as errors, warnings, or info, to a file or console for later review.
Click to reveal answer
beginner
Why is logging important in bash scripts?
Logging helps track what the script did, find errors, and understand the script's behavior over time, especially when scripts run automatically or on remote servers.
Click to reveal answer
beginner
What is a simple way to log messages in bash?
Use the echo command to print messages and redirect them to a log file using > or >>, for example: echo "Message" >> script.log
Click to reveal answer
intermediate
How can you add timestamps to log messages in bash?
Use the date command inside the log message, for example: echo "$(date '+%Y-%m-%d %H:%M:%S') - Message" >> script.log
Click to reveal answer
intermediate
What is the benefit of using log levels (INFO, WARN, ERROR) in bash logging?
Log levels help organize messages by importance, making it easier to filter and understand logs, for example, showing only errors when troubleshooting.
Click to reveal answer
Which bash command is commonly used to write messages to a log file?
Als
Bcat
Cgrep
Decho
How do you append a message to an existing log file in bash?
Aecho "message" >> logfile
Bls >> logfile
Ccat logfile >> message
Decho "message" > logfile
What does adding timestamps to log entries help with?
AMaking logs colorful
BKnowing when events happened
CCompressing log files
DEncrypting logs
Which of these is NOT a common log level?
ARUN
BWARN
CERROR
DINFO
Why use a logging framework instead of just echo commands?
ATo make scripts run faster
BTo avoid writing any logs
CTo organize logs with levels and timestamps
DTo delete old logs automatically
Explain how you would implement a basic logging framework in a bash script.
Think about how to print messages with time and importance to a file.
You got /4 concepts.
    Describe the benefits of using log levels in bash script logging.
    Consider how different message types help when reading logs.
    You got /4 concepts.

      Practice

      (1/5)
      1. What is the main purpose of a logging framework in a bash script?
      easy
      A. To record important messages during script execution
      B. To speed up the script execution
      C. To change file permissions automatically
      D. To delete temporary files after running

      Solution

      1. Step 1: Understand logging role

        Logging records messages that help track what the script does while running.
      2. Step 2: Compare options

        Only To record important messages during script execution describes recording messages; others describe unrelated tasks.
      3. Final Answer:

        To record important messages during script execution -> Option A
      4. Quick Check:

        Logging = record messages [OK]
      Hint: Logging means saving messages about script actions [OK]
      Common Mistakes:
      • Confusing logging with script speed optimization
      • Thinking logging changes file permissions
      • Assuming logging deletes files automatically
      2. Which of the following is the correct syntax to define a simple logging function in bash that prints a message with a timestamp?
      easy
      A. log() echo "$(date) - $1"
      B. log = echo "$(date) - $1"
      C. function log echo "$(date) - $1"
      D. log() { echo "$(date) - $1"; }

      Solution

      1. Step 1: Review bash function syntax

        Functions use the format: name() { commands; }.
      2. Step 2: Check each option

        log() { echo "$(date) - $1"; } correctly defines a function with braces and echo command. Others have syntax errors.
      3. Final Answer:

        log() { echo "$(date) - $1"; } -> Option D
      4. Quick Check:

        Function syntax with braces = log() { echo "$(date) - $1"; } [OK]
      Hint: Bash functions need () and braces { } [OK]
      Common Mistakes:
      • Using spaces around = in function definition
      • Omitting braces {} for function body
      • Writing function without parentheses ()
      3. Given the bash function:
      log() { echo "$(date +'%Y-%m-%d %H:%M:%S') [$1] $2"; }

      What is the output of log INFO "Script started"?
      medium
      A. Script started [INFO]
      B. [INFO] Script started
      C. 2024-06-01 12:00:00 [INFO] Script started
      D. INFO Script started

      Solution

      1. Step 1: Understand function parameters

        $1 is the log level (INFO), $2 is the message (Script started).
      2. Step 2: Understand echo format

        It prints date, then [$1], then $2, so output is timestamp + [INFO] + message.
      3. Final Answer:

        2024-06-01 12:00:00 [INFO] Script started -> Option C
      4. Quick Check:

        Format = timestamp + [level] + message [OK]
      Hint: First param is level, second is message in log() [OK]
      Common Mistakes:
      • Mixing order of parameters
      • Ignoring timestamp format
      • Missing brackets around log level
      4. You have this logging function:
      log() { echo "$(date +'%Y-%m-%d %H:%M:%S') [$1] $2"; }

      But when you run log ERROR it prints:
      2024-06-01 12:00:00 [ERROR]
      What is the problem?
      medium
      A. Missing second argument for the message
      B. Date command syntax is wrong
      C. Function name 'log' is reserved
      D. Brackets around $1 cause error

      Solution

      1. Step 1: Check function usage

        Function expects two arguments: level and message.
      2. Step 2: Analyze output

        Only level is given, so message ($2) is empty, causing missing text after [ERROR].
      3. Final Answer:

        Missing second argument for the message -> Option A
      4. Quick Check:

        Two args needed: level and message [OK]
      Hint: Always provide both level and message to log() [OK]
      Common Mistakes:
      • Passing only one argument to log()
      • Assuming date syntax is incorrect
      • Thinking function name conflicts cause this
      5. You want to improve your bash logging function to write logs to a file and include log levels only if they are WARNING or ERROR. Which code snippet correctly implements this?
      hard
      A. log() { if [ "$1" = "INFO" ]; then echo "$(date) [$1] $2" >> script.log; fi; }
      B. log() { if [[ "$1" == "WARNING" || "$1" == "ERROR" ]]; then echo "$(date) [$1] $2" >> script.log; fi; }
      C. log() { echo "$(date) [$1] $2" >> script.log; }
      D. log() { echo "$2" >> script.log; }

      Solution

      1. Step 1: Understand requirement

        Logs should be saved to a file and include level only if WARNING or ERROR.
      2. Step 2: Check each option

        log() { if [[ "$1" == "WARNING" || "$1" == "ERROR" ]]; then echo "$(date) [$1] $2" >> script.log; fi; } writes to file and filters levels correctly. log() { echo "$(date) [$1] $2" >> script.log; } writes all levels. log() { if [ "$1" = "INFO" ]; then echo "$(date) [$1] $2" >> script.log; fi; } only logs INFO. log() { echo "$2" >> script.log; } logs message without level.
      3. Final Answer:

        log() { if [[ "$1" == "WARNING" || "$1" == "ERROR" ]]; then echo "$(date) [$1] $2" >> script.log; fi; } -> Option B
      4. Quick Check:

        Filter levels and append to file = log() { if [[ "$1" == "WARNING" || "$1" == "ERROR" ]]; then echo "$(date) [$1] $2" >> script.log; fi; } [OK]
      Hint: Use if condition to filter levels before logging to file [OK]
      Common Mistakes:
      • Logging all levels without filtering
      • Not appending logs to file
      • Logging message without level info
      Recommended

      Ready to prove it?

      Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

      10 questions~5 mineasy hard