Bird
Raised Fist0
Spring Bootframework~5 mins

Package-level log configuration in Spring Boot

Choose your learning style10 modes available
Introduction

Package-level log configuration helps you control how much detail your app shows in logs for specific parts. It keeps logs clear and useful.

You want to see detailed logs only for a specific package while keeping others quiet.
You need to debug a problem in one part of your app without too much noise from other parts.
You want to reduce log size by limiting logs from less important packages.
You want different log levels for different packages in your Spring Boot app.
Syntax
Spring Boot
logging.level.<package-name>=<log-level>

Replace <package-name> with the Java package you want to configure, like com.example.service.

Replace <log-level> with levels like TRACE, DEBUG, INFO, WARN, ERROR.

Examples
Shows detailed debug logs only for the com.example.service package.
Spring Boot
logging.level.com.example.service=DEBUG
Sets info level logs for Spring Web package, so you see normal info messages but not debug details.
Spring Boot
logging.level.org.springframework.web=INFO
Sets the default log level to WARN for all packages unless overridden.
Spring Boot
logging.level.root=WARN
Sample Program

This example sets DEBUG logs for the controller package and ERROR logs for the repository package. When the controller method runs, debug and info logs appear. When the repository method runs, only error logs appear.

Spring Boot
application.properties
logging.level.com.example.controller=DEBUG
logging.level.com.example.repository=ERROR

// Sample Spring Boot Controller class
package com.example.controller;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class HelloController {
    private static final Logger logger = LoggerFactory.getLogger(HelloController.class);

    @GetMapping("/hello")
    public String sayHello() {
        logger.debug("Debug: Entering sayHello method");
        logger.info("Info: Returning greeting message");
        return "Hello, World!";
    }
}

// Sample Spring Boot Repository class
package com.example.repository;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Repository;

@Repository
public class DataRepository {
    private static final Logger logger = LoggerFactory.getLogger(DataRepository.class);

    public void fetchData() {
        logger.error("Error: Data fetch failed");
        logger.info("Info: This info will not show because level is ERROR");
    }
}
OutputSuccess
Important Notes

Package names are case-sensitive and must match your Java package structure exactly.

Use root to set a default log level for all packages.

Changing log levels at runtime may require restarting your Spring Boot app.

Summary

Package-level log configuration controls log detail per Java package.

Set it in application.properties using logging.level.<package>=<level>.

This helps focus on important logs and reduce noise.

Practice

(1/5)
1. What is the purpose of setting logging.level.<package>=<level> in Spring Boot's application.properties?
easy
A. To control the logging detail for a specific Java package
B. To define the database connection URL
C. To set the server port number
D. To configure the application's timezone

Solution

  1. Step 1: Understand the configuration key

    The key logging.level.<package> is used to specify logging levels for Java packages in Spring Boot.
  2. Step 2: Identify the purpose of this setting

    This setting controls how detailed the logs are for that package, helping to focus on important logs and reduce noise.
  3. Final Answer:

    To control the logging detail for a specific Java package -> Option A
  4. Quick Check:

    Package-level log control = A [OK]
Hint: Remember: logging.level.package sets log detail per package [OK]
Common Mistakes:
  • Confusing logging level with server or database settings
  • Trying to set logging level without specifying a package
  • Using incorrect property keys like logging.package.level
2. Which of the following is the correct syntax to set the log level to DEBUG for the package com.example.service in application.properties?
easy
A. logging.level=com.example.service=DEBUG
B. log.level.com.example.service=DEBUG
C. logging.com.example.service.level=DEBUG
D. logging.level.com.example.service=DEBUG

Solution

  1. Step 1: Recall the correct property format

    The correct format is logging.level.<package>=<level>, so the package name comes immediately after logging.level..
  2. Step 2: Match the option to the format

    logging.level.com.example.service=DEBUG matches this format exactly: logging.level.com.example.service=DEBUG.
  3. Final Answer:

    logging.level.com.example.service=DEBUG -> Option D
  4. Quick Check:

    Correct syntax = B [OK]
Hint: Use logging.level.package=LEVEL exactly as shown [OK]
Common Mistakes:
  • Adding extra '=' signs in the property
  • Swapping order of package and level
  • Using 'log.level' instead of 'logging.level'
3. Given the following application.properties settings:
logging.level.com.example=INFO
logging.level.com.example.service=DEBUG
What will be the log level for classes in com.example.service package?
medium
A. INFO
B. DEBUG
C. ERROR
D. WARN

Solution

  1. Step 1: Understand package-level log hierarchy

    More specific package settings override broader ones. Here, com.example.service is more specific than com.example.
  2. Step 2: Determine effective log level

    The com.example.service package is set to DEBUG, which overrides the INFO level set for com.example.
  3. Final Answer:

    DEBUG -> Option B
  4. Quick Check:

    Specific package level overrides general = C [OK]
Hint: More specific package log level overrides parent package [OK]
Common Mistakes:
  • Assuming parent package level applies to all subpackages
  • Ignoring more specific package settings
  • Confusing INFO and DEBUG levels
4. You set logging.level.com.example=TRACE in application.properties but still see only INFO logs from com.example classes. What is the most likely cause?
medium
A. Logging is disabled globally
B. TRACE level is not supported in Spring Boot
C. Another configuration overrides the log level to INFO
D. The package name is misspelled in the properties file

Solution

  1. Step 1: Verify if TRACE is supported

    TRACE is a valid log level in Spring Boot, so this is not the issue.
  2. Step 2: Consider configuration overrides

    If logs show INFO instead of TRACE, likely another config (like environment variables or YAML) overrides the level to INFO.
  3. Final Answer:

    Another configuration overrides the log level to INFO -> Option C
  4. Quick Check:

    Config override causes unexpected log level = D [OK]
Hint: Check for conflicting configs if log level seems ignored [OK]
Common Mistakes:
  • Assuming TRACE is unsupported
  • Not checking for typos in package name
  • Ignoring global logging settings
5. You want to reduce log noise by setting ERROR level for com.example.repository but keep DEBUG for com.example.service. Which application.properties configuration achieves this?
hard
A. logging.level.com.example.repository=ERROR logging.level.com.example.service=DEBUG
B. logging.level.com.example=ERROR logging.level.com.example.service=DEBUG
C. logging.level.com.example.repository=DEBUG logging.level.com.example.service=ERROR
D. logging.level.com.example.repository=INFO logging.level.com.example.service=DEBUG

Solution

  1. Step 1: Set ERROR level specifically for repository package

    Use logging.level.com.example.repository=ERROR to reduce noise from repository logs.
  2. Step 2: Set DEBUG level specifically for service package

    Use logging.level.com.example.service=DEBUG to keep detailed logs for service package.
  3. Step 3: Combine both settings correctly

    logging.level.com.example.repository=ERROR logging.level.com.example.service=DEBUG correctly sets both packages with their respective levels in application.properties.
  4. Final Answer:

    logging.level.com.example.repository=ERROR logging.level.com.example.service=DEBUG -> Option A
  5. Quick Check:

    Separate package levels set correctly = A [OK]
Hint: Set each package level separately for precise control [OK]
Common Mistakes:
  • Setting parent package level instead of specific packages
  • Swapping log levels between packages
  • Using incorrect property keys or syntax
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