Bird
Raised Fist0
Nginxdevops~20 mins

Error log configuration in Nginx - Practice Problems & Coding Challenges

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Challenge - 5 Problems
🎖️
Error Log Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
💻 Command Output
intermediate
2:00remaining
What is the effect of this nginx error_log directive?
Given the nginx configuration line:
error_log /var/log/nginx/error.log warn;

What is the effect of this directive?
Nginx
error_log /var/log/nginx/error.log warn;
ALogs only error messages to /var/log/nginx/error.log
BLogs messages with severity warn and higher to /var/log/nginx/error.log
CDisables error logging
DLogs all messages including debug to /var/log/nginx/error.log
Attempts:
2 left
💡 Hint
Severity levels in nginx error_log go from debug, info, notice, warn, error, crit, alert, emerg.
Configuration
intermediate
2:00remaining
Choose the correct nginx error_log directive to log only critical errors
Which of the following nginx error_log directives will log only critical errors and above (crit, alert, emerg) to /var/log/nginx/critical.log?
Aerror_log /var/log/nginx/critical.log info;
Berror_log /var/log/nginx/critical.log error;
Cerror_log /var/log/nginx/critical.log warn;
Derror_log /var/log/nginx/critical.log crit;
Attempts:
2 left
💡 Hint
Higher severity levels include crit, alert, emerg. Lower levels include error, warn, info.
Troubleshoot
advanced
2:00remaining
Why does nginx not log debug messages despite error_log set to debug?
You set this directive:
error_log /var/log/nginx/debug.log debug;

But no debug messages appear in the log. What is the most likely reason?
AThe debug log file path is incorrect
BThe error_log directive must be inside the http block to work
CNginx was not compiled with debug support enabled
DDebug messages are only logged if the server is restarted twice
Attempts:
2 left
💡 Hint
Debug logging requires special compile-time support in nginx.
Best Practice
advanced
2:00remaining
What is the recommended way to separate error logs by server block in nginx?
You want to keep error logs separate for each server block in nginx. Which configuration is best practice?
ASet error_log inside each server block with a unique file path
BSet one global error_log in the main context for all servers
CDisable error_log and rely on access_log for errors
DUse syslog for all error logs instead of files
Attempts:
2 left
💡 Hint
Error logs can be set at different levels in nginx config hierarchy.
🔀 Workflow
expert
3:00remaining
Order the steps to enable and verify nginx error logging at 'error' level
Put these steps in the correct order to enable error logging at 'error' level and verify it works:
A1,2,3,4
B2,1,3,4
C1,3,2,4
D3,1,2,4
Attempts:
2 left
💡 Hint
Configuration changes require reload before testing.

Practice

(1/5)
1. What is the main purpose of the error_log directive in nginx?
easy
A. To specify the file where error messages are recorded
B. To set the maximum number of client connections
C. To configure the server's IP address
D. To define the root directory for website files

Solution

  1. Step 1: Understand the role of error logs

    Error logs record problems and errors that happen in the server, helping to find and fix issues.
  2. Step 2: Identify what error_log does

    The error_log directive tells nginx where to save these error messages, specifying the file path and log level.
  3. Final Answer:

    To specify the file where error messages are recorded -> Option A
  4. Quick Check:

    error_log = file for errors [OK]
Hint: Error logs = where nginx saves error messages [OK]
Common Mistakes:
  • Confusing error_log with access_log
  • Thinking error_log sets server IP
  • Mixing error_log with client connection limits
2. Which of the following is the correct syntax to set the error log file to /var/log/nginx/error.log with log level warn?
easy
A. error_log /var/log/nginx/error.log level warn;
B. error_log = /var/log/nginx/error.log warn;
C. error_log /var/log/nginx/error.log warn
D. error_log /var/log/nginx/error.log warn;

Solution

  1. Step 1: Recall nginx error_log syntax

    The correct syntax is: error_log <file_path> <log_level>;
  2. Step 2: Check each option

    error_log /var/log/nginx/error.log warn; matches the correct syntax with semicolon and no extra symbols. Options A and B have invalid syntax, and D misses the semicolon.
  3. Final Answer:

    error_log /var/log/nginx/error.log warn; -> Option D
  4. Quick Check:

    Correct syntax ends with semicolon [OK]
Hint: Syntax: error_log path level; ends with semicolon [OK]
Common Mistakes:
  • Omitting the semicolon at the end
  • Using '=' sign incorrectly
  • Adding extra words like 'level'
3. Given this nginx configuration snippet:
error_log /var/log/nginx/error.log error;

What level of messages will be logged?
medium
A. Errors and more severe messages
B. Only critical errors
C. All messages including debug
D. Only warnings and errors

Solution

  1. Step 1: Understand log levels hierarchy

    Log levels in nginx from least to most severe: debug, info, notice, warn, error, crit, alert, emerg.
  2. Step 2: Interpret 'error' level

    Setting level to 'error' logs error and all more severe messages like critical, alert, emergency.
  3. Final Answer:

    Errors and more severe messages -> Option A
  4. Quick Check:

    error level logs error and above [OK]
Hint: Log level logs that level and higher severity [OK]
Common Mistakes:
  • Thinking it logs only critical errors
  • Assuming warnings are included at error level
  • Confusing debug with error level
4. You set error_log /var/log/nginx/error.log warn; but no warnings appear in the log file. What is the most likely cause?
medium
A. Error logs only record errors, not warnings
B. The log level 'warn' does not exist in nginx
C. The log file path is incorrect or not writable
D. You must restart nginx to enable error logging

Solution

  1. Step 1: Check log file path and permissions

    If the path is wrong or nginx cannot write to the file, logs won't appear.
  2. Step 2: Validate log level and service status

    'warn' is a valid level, and nginx logs warnings. Restarting is usually needed only after config changes, but logging works immediately if path is correct.
  3. Final Answer:

    The log file path is incorrect or not writable -> Option C
  4. Quick Check:

    Writable log file needed for logs [OK]
Hint: Check file path and permissions first if logs missing [OK]
Common Mistakes:
  • Assuming 'warn' is invalid log level
  • Forgetting to check file permissions
  • Thinking restart always needed for logging
5. You want to log all error messages including debug info to /var/log/nginx/full_error.log but keep normal error logs at /var/log/nginx/error.log with level error. Which configuration achieves this?
hard
A. error_log /var/log/nginx/error.log error debug;\nerror_log /var/log/nginx/full_error.log debug;
B. error_log /var/log/nginx/error.log error;\nerror_log /var/log/nginx/full_error.log debug;
C. error_log /var/log/nginx/error.log error;\nerror_log /var/log/nginx/full_error.log error;
D. error_log /var/log/nginx/error.log;\nerror_log /var/log/nginx/full_error.log debug;

Solution

  1. Step 1: Understand multiple error_log directives

    nginx allows multiple error_log directives to log to different files with different levels.
  2. Step 2: Check each option for correct syntax and intent

    error_log /var/log/nginx/error.log error;\nerror_log /var/log/nginx/full_error.log debug; correctly sets error level for normal log and debug level for full log. error_log /var/log/nginx/error.log error debug;\nerror_log /var/log/nginx/full_error.log debug; has invalid combined levels. error_log /var/log/nginx/error.log error;\nerror_log /var/log/nginx/full_error.log error; logs both at error level. error_log /var/log/nginx/error.log;\nerror_log /var/log/nginx/full_error.log debug; misses level for first log.
  3. Final Answer:

    error_log /var/log/nginx/error.log error;\nerror_log /var/log/nginx/full_error.log debug; -> Option B
  4. Quick Check:

    Separate directives for different levels [OK]
Hint: Use two error_log lines with different levels [OK]
Common Mistakes:
  • Combining log levels in one directive incorrectly
  • Omitting log level in error_log
  • Using one file for both levels