Quantcast
Channel: Tutorials With Examples » Java Logging APIs
Viewing all articles
Browse latest Browse all 6

Setting Logging Levels In Java

$
0
0

How to set Logging Levels In Java :

In this tutorial we will see how to set logging levels to control the log messages being logged when application is running in different mode(production, testing, development etc.). Logging level defines the severity or importance of message being logged. In this example we will see how to change the logging levels at coding level. You can use properties file to change the logging configuration, check Java Logging configuration tutorial for more details.

Log Levels can be set at both Logger and Handler side and it can also have impact of logging levels set ta parent logger and handler. Log level set at handler levels will take more priority than logger level at logger and hence even if you have set lower log level at logger side the log message will always emitted as per log handler setting.

In Below example we will first set logging level to INFO at Logger level and then change log level to SEVERE at handler to see the impact.

package com.tutorialswithexamples.examples.java.logger.logging;
 
import java.util.logging.ConsoleHandler;
import java.util.logging.Level;
import java.util.logging.Logger;
 
/**
 * In this exmaple we will see how to set log levels
 * at Logger and Handler level to control the log messages .
 *
 */
public class SetLogLevelExample {
    public SetLogLevelExample() {
        super();
    }
 
    public static void main(String[] args) {
        //Create a
        final Logger _logger = Logger.getLogger("MyLogger");
        ConsoleHandler consoleHandler = new ConsoleHandler();
 
        _logger.addHandler(consoleHandler);
        //It is important to disable parent handler if any.
        _logger.setUseParentHandlers(false);
 
        //Now change the log level at handler level to see the effect 
        _logger.setLevel(Level.WARNING); 
 
        //Here we will log messages using java logger
        System.out.println("Start logging messages");
 
        //log message with SEVERE severity/level
        _logger.log(Level.SEVERE,
                   "logging severe message");
 
        //log message with warning severity/level
        _logger.log(Level.WARNING,
                   "logging warning message");
 
        //log message with info severity/level
        _logger.log(Level.INFO, "logging info message");
 
        consoleHandler.setLevel(Level.SEVERE);
        //Here we will log messages using java logger
        System.out.println("Set Log Level of Handler to SEVERE");
 
        //log message with SEVERE severity/level
        _logger.log(Level.SEVERE,
                   "Logging severe message");
 
        //log message with warning severity/level
        _logger.log(Level.WARNING,
                   "Logging warning message");
 
        //log message with info severity/level
        _logger.log(Level.INFO, "Logging info message");
 
    }
}

As you can see in the below output of above example that when log level of handler is changed to SEVER only message with severe level is logged. All other messages are discarded by the handler.

Output of Example

Start logging messages
5 Aug, 2012 2:31:19 PM com.tutorialswithexamples.examples.java.logger.logging.SetLogLevelExample main
SEVERE: logging severe message
5 Aug, 2012 2:31:19 PM com.tutorialswithexamples.examples.java.logger.logging.SetLogLevelExample main
WARNING: logging warning message
Set Log Level of Handler to SEVERE
5 Aug, 2012 2:31:19 PM com.tutorialswithexamples.examples.java.logger.logging.SetLogLevelExample main
SEVERE: Logging severe message

What we Learned : Log levels can be controlled at Handler and Logger level. Log level set at handler level will have more precedence than log level at Logger level.


Viewing all articles
Browse latest Browse all 6

Latest Images

Trending Articles



Latest Images