Challenge - 5 Problems
SLF4J and Logback Mastery
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ component_behavior
intermediate2:00remaining
What is the output of this SLF4J logging code snippet?
Consider this Spring Boot component using SLF4J for logging:
If the logging level is set to INFO, which messages will appear in the console?
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class MyService {
private static final Logger logger = LoggerFactory.getLogger(MyService.class);
public void process() {
logger.info("Process started");
logger.debug("Debugging process");
logger.error("Error occurred");
}
}
If the logging level is set to INFO, which messages will appear in the console?
Spring Boot
import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class MyService { private static final Logger logger = LoggerFactory.getLogger(MyService.class); public void process() { logger.info("Process started"); logger.debug("Debugging process"); logger.error("Error occurred"); } }
Attempts:
2 left
💡 Hint
Remember that INFO level shows messages at INFO and higher severity.
✗ Incorrect
SLF4J logging respects the configured level. INFO level shows INFO, WARN, ERROR but hides DEBUG and TRACE messages.
📝 Syntax
intermediate2:00remaining
Which Logback configuration snippet correctly sets the root logger to WARN level?
Given these Logback XML configuration options, which one correctly sets the root logger level to WARN?
Spring Boot
<configuration> <!-- options below --> </configuration>
Attempts:
2 left
💡 Hint
Logback levels are case-sensitive and must be uppercase.
✗ Incorrect
Logback requires log levels in uppercase: TRACE, DEBUG, INFO, WARN, ERROR. 'warn' or 'Warn' or 'warning' are invalid.
🔧 Debug
advanced2:00remaining
Why does this SLF4J logging statement cause an error?
Examine this code snippet:
What error will this cause and why?
logger.info("User {} logged in at {}", userName);What error will this cause and why?
Spring Boot
logger.info("User {} logged in at {}", userName);Attempts:
2 left
💡 Hint
Count the placeholders and arguments carefully.
✗ Incorrect
SLF4J requires matching arguments for each '{}' placeholder. Missing arguments cause runtime exceptions.
❓ state_output
advanced2:00remaining
What is the effect of setting
additivity to false in Logback logger configuration?Given this Logback snippet:
What happens to log messages from 'com.example' package?
<logger name="com.example" level="DEBUG" additivity="false"> <appender-ref ref="FILE" /> </logger>
What happens to log messages from 'com.example' package?
Spring Boot
<logger name="com.example" level="DEBUG" additivity="false"> <appender-ref ref="FILE" /> </logger>
Attempts:
2 left
💡 Hint
Additivity controls if logs bubble up to parent loggers.
✗ Incorrect
Setting additivity=false stops logs from propagating to parent appenders, so only specified appenders receive logs.
🧠 Conceptual
expert3:00remaining
Which statement best describes the relationship between SLF4J and Logback in a Spring Boot application?
Choose the most accurate description of how SLF4J and Logback work together in Spring Boot logging.
Attempts:
2 left
💡 Hint
Think about the role of a facade versus an implementation.
✗ Incorrect
SLF4J provides a simple interface for logging. Logback is a concrete logging framework that SLF4J calls delegate to.