Bird
Raised Fist0
Expressframework~10 mins

Log levels and when to use them in Express - Step-by-Step Execution

Choose your learning style10 modes available
Concept Flow - Log levels and when to use them
Start Logging Event
↓
Determine Log Level
↓
Is Level: Error?
Yes→Log as ERROR
↓
Send Alert if needed
↓
Is Level: Warn?
Yes→Log as WARN
↓
Review Warning
↓
Is Level: Info?
Yes→Log as INFO
↓
General Operation Logs
↓
Is Level: Debug?
Yes→Log as DEBUG
↓
Detailed Dev Info
↓
Is Level: Trace?
Yes→Log as TRACE
↓
Very Fine Detail
↓
End Logging Event
This flow shows how a logging event is checked against log levels from highest severity (Error) to lowest (Trace) to decide how to log it.
Execution Sample
Express
const log = (level, message) => {
  switch(level) {
    case 'error': console.error(message); break;
    case 'warn': console.warn(message); break;
    case 'info': console.info(message); break;
    case 'debug': console.debug(message); break;
    case 'trace': console.log(message); break;
  }
};
This function logs messages to the console based on the log level provided.
Execution Table
StepInput LevelMessageAction TakenConsole Output
1error"Server crashed"Log as ERRORError: Server crashed
2warn"Memory usage high"Log as WARNWarning: Memory usage high
3info"User logged in"Log as INFOInfo: User logged in
4debug"Variable x=10"Log as DEBUGDebug: Variable x=10
5trace"Function start"Log as TRACELog: Function start
6verbose"Extra details"No matching level, no log
💡 Logging stops after matching the input level or no match found.
Variable Tracker
VariableStartAfter Step 1After Step 2After Step 3After Step 4After Step 5After Step 6
levelundefinederrorwarninfodebugtraceverbose
messageundefinedServer crashedMemory usage highUser logged inVariable x=10Function startExtra details
Key Moments - 3 Insights
Why does the 'verbose' level not produce any output?
Because 'verbose' is not handled in the switch cases (see execution_table row 6), so no logging action is taken.
Why do we use different console methods like console.error and console.warn?
Each console method matches the log level severity and helps tools or developers quickly identify the importance of the message (see execution_table rows 1 and 2).
What happens if we pass a log level not defined in the function?
No logging occurs because the switch has no matching case, so the function does nothing (see execution_table row 6).
Visual Quiz - 3 Questions
Test your understanding
Look at the execution table, what console method is used at step 3?
Aconsole.info
Bconsole.warn
Cconsole.error
Dconsole.debug
💡 Hint
Check the 'Action Taken' and 'Console Output' columns at step 3.
At which step does the logging function not produce any output?
AStep 4
BStep 6
CStep 2
DStep 1
💡 Hint
Look for the row where 'Console Output' is empty in the execution table.
If we add a 'verbose' case to the switch, what would change in the execution table?
AStep 6 would log a message instead of no output
BStep 5 would stop logging
CStep 1 would log twice
DNo change at all
💡 Hint
Consider what happens when a new matching case is added for 'verbose' in the switch.
Concept Snapshot
Log levels help organize messages by importance.
Common levels: error, warn, info, debug, trace.
Use error for serious problems, warn for caution, info for normal events.
Debug and trace show detailed info for developers.
In Express, use console methods matching levels.
Unrecognized levels produce no output.
Full Transcript
This lesson shows how logging works in Express using different log levels. When a message is logged, the code checks its level from error down to trace. Each level uses a different console method to show the message with the right importance. For example, errors use console.error and warnings use console.warn. If the level is not recognized, no message is logged. This helps developers and operators quickly see what is happening and how serious it is. The example function uses a switch statement to pick the right console method. The execution table shows what happens step by step for different levels. Beginners often wonder why some messages don't show up or why different console methods are used. This visual trace clears those doubts by showing exactly what happens inside the function.

Practice

(1/5)
1. Which log level in Express is best used to record normal operation messages that confirm things are working as expected?
easy
A. info
B. error
C. debug
D. warn

Solution

  1. Step 1: Understand the purpose of log levels

    Log levels help separate messages by importance. 'info' is for normal operations.
  2. Step 2: Match log level to message type

    'info' is used to confirm the app is running fine, unlike 'error' or 'warn' which indicate problems.
  3. Final Answer:

    info -> Option A
  4. Quick Check:

    Normal operation messages = info [OK]
Hint: Info logs show normal app activity clearly [OK]
Common Mistakes:
  • Confusing 'info' with 'error'
  • Using 'debug' for normal messages
  • Thinking 'warn' is for normal info
2. Which of the following is the correct way to log a warning message using Express's console object?
easy
A. console.info('This is a warning')
B. console.error('This is a warning')
C. console.debug('This is a warning')
D. console.warn('This is a warning')

Solution

  1. Step 1: Identify the correct console method for warnings

    Express uses standard console methods; 'warn' is for warnings.
  2. Step 2: Match method to message type

    console.warn() logs warning messages, unlike console.error() which logs errors.
  3. Final Answer:

    console.warn('This is a warning') -> Option D
  4. Quick Check:

    Warning messages use console.warn() [OK]
Hint: Use console.warn() for warnings, not error or info [OK]
Common Mistakes:
  • Using console.error for warnings
  • Using console.info for warnings
  • Using console.debug for warnings
3. What will be the output of this Express logging code snippet?
console.info('Server started');
console.warn('Memory usage high');
console.error('Failed to connect to DB');
console.debug('User ID: 1234');
medium
A. Only 'Failed to connect to DB' will appear
B. Only 'Server started' and 'Memory usage high' will appear
C. All four messages will appear in the console
D. Only 'User ID: 1234' will appear

Solution

  1. Step 1: Understand default console behavior in Express

    By default, all console methods (info, warn, error, debug) print messages to the console.
  2. Step 2: Analyze the code snippet output

    All four console calls will output their messages unless filtered by a logging library, which is not shown here.
  3. Final Answer:

    All four messages will appear in the console -> Option C
  4. Quick Check:

    Default console logs all levels [OK]
Hint: Default console logs all messages unless filtered [OK]
Common Mistakes:
  • Thinking debug logs are hidden by default
  • Assuming error logs suppress others
  • Confusing info and warn visibility
4. You want to log an error in Express but accidentally write console.warn('Error occurred'). What is the main issue with this?
medium
A. The code will cause a syntax error
B. The message will be logged as a warning, not an error
C. The message will not appear in the console
D. The app will crash

Solution

  1. Step 1: Identify the difference between warn and error logs

    console.warn logs warnings; console.error logs errors. They differ in severity.
  2. Step 2: Understand the impact of using warn instead of error

    Using console.warn will log the message but mark it as a warning, not an error, which may mislead debugging.
  3. Final Answer:

    The message will be logged as a warning, not an error -> Option B
  4. Quick Check:

    Wrong log level changes message severity [OK]
Hint: Use console.error for errors, not console.warn [OK]
Common Mistakes:
  • Thinking warn causes errors
  • Expecting syntax error
  • Assuming message won't show
5. In an Express app, you want to log detailed information only when debugging is enabled, but always log warnings and errors. Which approach correctly uses log levels to achieve this?
hard
A. Use console.debug for detailed info, console.warn for warnings, and console.error for errors; enable debug logs conditionally.
B. Use console.info for all logs and filter messages manually.
C. Use console.error for all messages to ensure visibility.
D. Use console.warn for detailed info and console.debug for errors.

Solution

  1. Step 1: Assign log levels by message importance

    Detailed info fits debug, warnings fit warn, and errors fit error.
  2. Step 2: Enable debug logs conditionally

    Debug logs can be turned on or off based on environment or settings, while warnings and errors always log.
  3. Final Answer:

    Use console.debug for detailed info, console.warn for warnings, and console.error for errors; enable debug logs conditionally. -> Option A
  4. Quick Check:

    Conditional debug, always warn/error = correct logging [OK]
Hint: Debug logs conditional; warn and error always on [OK]
Common Mistakes:
  • Logging all as info
  • Using error for all messages
  • Mixing warn and debug levels incorrectly
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