當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Java Logger getLogger()用法及代碼示例


Logger類的getLogger()方法用於查找或創建記錄器。如果存在使用傳遞的名稱的記錄器,則該方法將返回該記錄器,否則該方法將使用該名稱創建一個新的記錄器並將其返回。

getLogger()方法有兩種類型,具體取決於傳遞的參數數。

  1. getLogger(java.lang.String):此方法用於查找或創建名稱作為參數傳遞的記錄器。如果記錄器的名稱不存在,它將創建一個新的記錄器。如果使用此方法創建了新的記錄器,則將根據LogManager配置配置其日誌級別,並將其配置為還將日誌記錄輸出發送至其父級的處理程序。它將在LogManager全局命名空間中注冊。

    用法:


    public static Logger getLogger(String name)
    

    參數:此方法接受單個參數名稱,該名稱是表示記錄器名稱的字符串。這應該是dot-separated名稱,並且通常應基於子係統的程序包名稱或類名稱,例如java.net或javax.swing

    返回值:此方法返回合適的Logger。

    異常:如果傳遞的名稱為null,則此方法將引發NullPointerException。

    以下示例程序旨在說明getLogger(java.lang.String)方法:
    示例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"); 
        } 
    }

    控製台上打印的輸出如下所示。
    輸出:

    示例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); 
            } 
        } 
    }

    控製台上打印的輸出如下所示。
    輸出:

  2. getLogger(字符串名稱,字符串resourceBundleName):此方法用於查找或創建帶有傳遞名稱的記錄器。如果已經使用給定名稱創建了記錄器,則將其返回。否則,將創建一個新的記錄器。如果具有傳遞名稱的Logger已經存在並且沒有本地化資源包,則給定的資源包名稱將用作此Logger的本地化資源包。如果命名的Logger具有不同的資源束名稱,則此方法將引發IllegalArgumentException。

    用法:

    public static Logger getLogger(String name, String resourceBundleName)
    

    參數:此方法接受兩個不同的參數:


    • name:這是記錄器的名稱。該名稱應該是dot-separated名稱,並且通常應基於子係統的程序包名稱或類名稱,例如java.net或javax.swing
    • resourceBundleName:這是用於為該記錄器本地化消息的ResourceBundle的名稱。

    返回值:此方法返回合適的Logger。

    異常:此方法將引發以下異常:

    1. NullPointerException :如果傳遞的名稱為null。
    2. MissingResourceException:如果resourceBundleName為非null,並且找不到相應的資源。
    3. IllegalArgumentException:如果Logger已經存在並使用其他資源束名稱;或者,如果resourceBundleName為null,但命名記錄器設置了資源束。

    以下示例程序旨在說明getLogger(String name,String resourceBundleName)方法:

    示例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"); 
        } 
    }

    對於上述程序,有一個屬性文件名resourceBundle。我們必須在類旁邊添加此文件以執行程序。
    輸出:

參考文獻:



相關用法


注:本文由純淨天空篩選整理自AmanSingh2210大神的英文原創作品 Logger getLogger() Method in Java with Examples。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。