Open In App

Logger getLogger() Method in Java with Examples

Last Updated : 24 Apr, 2019
Improve
Improve
Like Article
Like
Save
Share
Report

The getLogger() method of a Logger class used find or create a logger. If there is a logger exists with the passed name then the method will return that logger else method will create a new logger with that name and return it.

There are two types of getLogger() method depending upon no of the parameter passed.

  1. getLogger(java.lang.String): This method is used to find or create a logger with the name passed as parameter. It will create a new logger if logger does not exist with the passed name. If a new logger is created by this method then its log level will be configured based on the LogManager configuration and it will be configured to also send logging output to its parent’s Handlers. It will be registered in the LogManager global namespace.

    Syntax:

    public static Logger getLogger(String name)
    

    Parameters: This method accepts a single parameter name which is the String representing name for the logger. This should be a dot-separated name and should normally be based on the package name or class name of the subsystem, such as java.net or javax.swing

    Return value: This method returns a suitable Logger.

    Exception: This method will throw NullPointerException if the passed name is null.

    Below programs illustrate getLogger(java.lang.String) method:
    Program 1:




    // Java program to demonstrate
    // Logger.getLogger(java.lang.String) method
      
    import java.util.logging.*;
      
    public class GFG {
      
        public static void main(String[] args)
        {
      
            // Create a Logger with class name GFG
            Logger logger
                = Logger.getLogger(GFG.class.getName());
      
            // Call info method
            logger.info("Message 1");
            logger.info("Message 2");
        }
    }

    
    

    The output printed on console is shown below.
    Output:

    Program 2:




    // Java program to demonstrate Exception thrown by
    // Logger.getLogger(java.lang.String) method
    import java.util.logging.*;
      
    public class GFG {
      
        public static void main(String[] args)
        {
      
            String LoggerName = null;
      
            // Create a Logger with a null value
            try {
                Logger logger
                    = Logger.getLogger(LoggerName);
            }
            catch (NullPointerException e) {
                System.out.println("Exception Thrown: "
                                   + e);
            }
        }
    }

    
    

    The output printed on console is shown below.
    Output:

  2. getLogger(String name, String resourceBundleName): This method is used to find or creates a logger with the passed name. If a logger has already been created with the given name it is returned. Otherwise, a new logger is created. If the Logger with the passed name already exists and does not have a localization resource bundle then the given resource bundle name is used as a localization resource bundle for this logger. If the named Logger has a different resource bundle name then an IllegalArgumentException is thrown by this method.

    Syntax:

    public static Logger getLogger(String name, String resourceBundleName)
    

    Parameters: This method accepts two different parameters:

    • name: which is the name for the logger. This name should be a dot-separated name and should normally be based on the package name or class name of the subsystem, such as java.net or javax.swing
    • resourceBundleName: which is the name of ResourceBundle to be used for localizing messages for this logger.

    Return value: This method returns a suitable Logger.

    Exception: This method will throws following Exceptions:

    1. NullPointerException: if the passed name is null.
    2. MissingResourceException: if the resourceBundleName is non-null and no corresponding resource can be found.
    3. IllegalArgumentException: if the Logger already exists and uses a different resource bundle name; or if resourceBundleName is null but the named logger has a resource bundle set.

    Below programs illustrate getLogger(String name, String resourceBundleName) method:

    Program 1:




    // Java program to demonstrate
    // getLogger(String name, String resourceBundleName) method
      
    import java.util.ResourceBundle;
    import java.util.logging.*;
      
    public class GFG {
      
        public static void main(String[] args)
        {
      
            // Create ResourceBundle using getBundle
            // myResource is a properties file
            ResourceBundle bundle
                = ResourceBundle
                      .getBundle("resourceBundle");
      
            // Create a Logger
            // with GFG.class and resourceBundle
            Logger logger
                = Logger.getLogger(
                    GFG.class.getName(),
                    bundle.getBaseBundleName());
      
            // Log the info
            logger.info("Message 1 for logger");
        }
    }

    
    

    For the above program, there is a properties file name resourceBundle. we have to add this file alongside the class to execute the program.
    Output:

References:



Like Article
Suggest improvement
Previous
Next
Share your thoughts in the comments

Similar Reads